Я пытаюсь использовать ExoPlayer для воспроизведения видео по http. И я хочу сохранить видео после загрузки видео и воспроизвести его из кеша. Как реализовать кеш и воспроизведение из кеша? Может дать мне любые образцы.
Кэш ExoPlayer
Ответ 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.