使用 exoplayer 在 android 9 和 10 上播放流时出错
error playing stream on android 9 and 10 with exoplayer
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" url,因此您无法在 android 9 及更高版本中播放视频。
从 Android 9(API 级别 28)开始,默认禁用明文支持。
查看以下答案了解更多信息
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" url,因此您无法在 android 9 及更高版本中播放视频。
从 Android 9(API 级别 28)开始,默认禁用明文支持。
查看以下答案了解更多信息