Android — Exoplayer не воспроизводит загрузку в автономном режиме после переключения wifi

#android #http-live-streaming #exoplayer #exoplayer2.x

#Android #http-прямая трансляция #exoplayer #exoplayer2.x

Вопрос:

Если я запускаю свое приложение с отключенным Wi-Fi, загруженные в автономном режиме видео воспроизводятся нормально.

Но после переключения Wi-Fi (вкл., затем выкл.) я получаю черный экран при просмотре того же видео сейчас. Только сообщение об ошибке:

 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);
  

Ответ №1:

Кажется, это исправлено, когда я устанавливаю 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 для загрузки оригинального видео