Android-切换wifi后,Exoplayer无法播放离线下载内容

问题描述

如果我在关闭wifi的情况下启动我的应用,则离线下载的视频可以正常播放。

但是在切换wifi(打开,然后关闭)之后,现在观看同一视频时出现黑屏。唯一错误消息:

E/ExoPlayerImplInternal: Source error.

有人遇到过类似的事情吗?

有关如何获取MediaSource的代码:

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的说明下载了原始视频

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...