Подтвердить что ты не робот

Кэш ExoPlayer

Я пытаюсь использовать ExoPlayer для воспроизведения видео по http. И я хочу сохранить видео после загрузки видео и воспроизвести его из кеша. Как реализовать кеш и воспроизведение из кеша? Может дать мне любые образцы.

4b9b3361

Ответ 1

Вы используете cacheDataSource, созданный с использованием кеша и dataSource. Этот cacheDataSource затем используется ExtractorSampleSource.Below - это код для audioRenderer, аналогично может быть сделан для videoRender; переход к exoplayerInstance.prepare(renderers).

Cache cache = new SimpleCache(mCtx.getCacheDir(), new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 10));
DataSource dataSource = new DefaultUriDataSource(mCtx, "My Player");
CacheDataSource cacheDataSource = new CacheDataSource(cache, dataSource, false, false);
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
ExtractorSampleSource extractorSampleSource = new ExtractorSampleSource(trackURI, cacheDataSource, allocator, BUFFER_SEGMENT_COUNT*BUFFER_SEGMENT_SIZE, new Mp3Extractor());
MediaCodecAudioTrackRenderer audioTrackRenderer = new MediaCodecAudioTrackRenderer(extractorSampleSource);

Ответ 2

Какой протокол вы используете mpeg-dash или обычный http.

Вы можете переопределить HttpDataSource и записать входящие байты в файл, а при повторном воспроизведении проверьте, существует ли файл в нужном месте и измените InputStream, поданный на плеер из вашего файла вместо HttpDataSource.