ExoPlayer缓存

我正在努力使用ExoPlayer通过http播放video。 我想在video加载后保存video并从缓存中播放。 如何从缓存实现缓存和回放? 可以给我任何样品。

您使用使用cache和dataSource创建的cacheDataSource。 这个cacheDataSource然后由ExtractorSampleSource使用.Below是audioRenderer的代码,类似地可以为videoRender完成; 传递给exoplayerInstance.prepare(渲染器)。

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

您使用mpeg-dash或plain http的协议是什么。

您可以覆盖HttpDataSource并将传入的字节写入文件,并在再次播放时检查文件是否存在于所需位置,并从您的文件而不是HttpDataSource更改提供给播放器的InputStream。