【发布时间】:2021-03-18 08:30:36
【问题描述】:
我只有链接音频https://storage.googleapis.com/as-piepme/1465/livestream/1465.fef238cdc9d9eb0b958d4eb23080e28b/index.m3u8 但 Exoplayer 无法在链接上方播放, 它返回“源错误”。但是 IOS 和 Chrome 都运行良好。我的代码:
SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build();
player.setMediaItem(MediaItem.fromUri(Uri.parse(linkPlay)));
player.prepare();
player.setPlayWhenReady(true);
更新我的解决方案:
MediaItem mediaItem = new MediaItem.Builder()
.setUri(Uri.parse("https://storage.googleapis.com/as-piepme/1465/livestream/1465.fef238cdc9d9eb0b958d4eb23080e28b/index.m3u8"))
.build();
DefaultHlsExtractorFactory defaultHlsExtractorFactory = new DefaultHlsExtractorFactory(DefaultTsPayloadReaderFactory.FLAG_IGNORE_H264_STREAM, false);
MediaSource mediaSource = new HlsMediaSource.Factory(new DefaultHlsDataSourceFactory(new DefaultDataSourceFactory(context)))
.setExtractorFactory(defaultHlsExtractorFactory)
.setAllowChunklessPreparation(true)
.createMediaSource(mediaItem);
player.setMediaSource(mediaSource);
【问题讨论】:
-
提供 logcat 详细信息并显示您的代码。
-
com.google.android.exoplayer2.ExoPlaybackException:在 com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:579) 在 android.os.Handler.dispatchMessage(Handler. java:102) 原因:com.google.android.exoplayer2.ParserException: 在准备完成之前加载完成。
-
你的代码呢?尤其是 MediaSource 之一。