我打算使用ExoPlayer通过http播放视频。我想在视频加载后保存视频并从缓存中播放。如何实现缓存和从缓存中回放?可以给我任何 sample 。
最佳答案
您可以使用使用cache和dataSource创建的cacheDataSource。然后,ExtractorSampleSource使用该cacheDataSource。下面是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);
关于android - ExoPlayer缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26095261/