java - 使用 exoplayer 在 android 9 和 10 上播放流时出错

标签 java android exoplayer ogg

String prp = "http://stream.dedyn.io:8000/dsbmradio.opus";

它在 android 8 之前有效,但在 9 或 10 上无效。按照我正在使用的代码

BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
exoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector);
Uri videoURI = Uri.parse(prp);
DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("exoplayer_video");
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
MediaSource mediaSource = new ExtractorMediaSource(videoURI, dataSourceFactory, extractorsFactory, null, null);

exoPlayerView.setPlayer(exoPlayer);
exoPlayer.prepare(mediaSource);
exoPlayer.setPlayWhenReady(true);

这是产生的错误

E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://rfmbrasil.servemp3.com:8000/uespi.ogg

最佳答案

由于您使用的是“http”网址,因此您无法在 android 9 及更高版本中播放视频。

从 Android 9(API 级别 28)开始,默认禁用明文支持。

查看下面的答案以获取更多信息

https://stackoverflow.com/a/50834600/7398620

关于java - 使用 exoplayer 在 android 9 和 10 上播放流时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249801/

相关文章:

android - 如何将渲染器注入(inject)到 SimpleExoPlayer

android - Exoplayer 不播放视频只播放音频

java - JAVA中从字符串中获取特定子字符串

java - 如何限制通过 ObjectInputStream 从 Socket 读取的最大大小?

java - 通过 LiveData 观察器将项目添加到特定索引时出现 IndexOutOfBoundsException

android - 如何在android google map中使用纬度和经度获取设置的精确 View

java - 为什么广播接收器不能动态工作?

java - 在 Java 中编写默认的 Comparator 类

javascript - 在 Android 网页中禁用缩放输入焦点

android - Exoplayer 无法播放某些音频流