Кеширование видеоинформации в exoplayer

Код ниже должен включить кэширование видео файлов, воспроизводимых с помощью exoplayer

    DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
    // Produces DataSource instances through which media data is loaded.
    DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context,
            Util.getUserAgent(context, "Hilarity"), bandwidthMeter);
    SimpleCache cache = new SimpleCache(context.getCacheDir(), new LeastRecentlyUsedCacheEvictor(1024^2*100));
    CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(cache, dataSourceFactory);
    // Produces Extractor instances for parsing the media data.
    ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
    if (postVideoView.getPlayer() != null) {
        postVideoView.getPlayer().prepare(new ExtractorMediaSource(Uri.parse(holder.getJoke().getMediaURL()),
                cacheDataSourceFactory, extractorsFactory, null, null), false, false);

однако, когда я запускаю приложение, видео не показывается. Когда dataSourceFactory переменная используется в ExtractorMediaSource конструктор, видео воспроизводится нормально, но кэширования нет. Я слежу за тем, что видел в выступлении Google I/O ExoPlayer от 2017 года. Я что-то не так сделал или что-то не так в библиотеке?

0 ответов

Другие вопросы по тегам