问题描述
如果我在关闭wifi的情况下启动我的应用,则离线下载的视频可以正常播放。
但是在切换wifi(打开,然后关闭)之后,现在观看同一视频时出现黑屏。唯一错误消息:
E/ExoPlayerImplInternal: Source error.
有人遇到过类似的事情吗?
SimpleCache sc = ...
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(app,"exoplayer-test");
DefaultExtractorsFactory extractorsFactory = new DefaultExtractorsFactory().setConstantBitrateSeekingEnabled(true);
CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(sc,dataSourceFactory,CacheDataSource.FLAG_BLOCK_ON_CACHE);
MediaSource mediaSource = new HlsMediaSource.Factory(cacheDataSourceFactory).createMediaSource(uri);
解决方法
设置PlaylistParserFactory时似乎要修复
mediaSource = new HlsMediaSource.Factory(cacheDataSourceFactory)
.setPlaylistParserFactory(
new FilteringHlsPlaylistParserFactory(
new DefaultHlsPlaylistParserFactory(),Collections.singletonList(new StreamKey(HlsMasterPlaylist.GROUP_INDEX_VARIANT,0))))
.createMediaSource(uri);
我按照此处https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html的说明下载了原始视频