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)开始,默认禁用明文支持。
查看下面的答案以获取更多信息
关于java - 使用 exoplayer 在 android 9 和 10 上播放流时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249801/