我试图使用ExoPlayer通过http播放视频。我想在视频加载后保存视频并从缓存中播放。如何实现从缓存中缓存和回放?可以给我任何样品。ExoPlayer缓存
12
A
回答
2
您使用mpeg-dash或纯http的协议是什么。
您可以覆盖HttpDataSource并将传入的字节写入文件,并在再次播放时检查文件是否存在于所需的位置,并从您的文件而不是HttpDataSource更改提供给播放器的InputStream。
+2
覆盖HttpDataSource是错误的方法,因为ExoPlayer具有缓存实现的目标类。例如CacheDataSource。我想要使用这个类的正确方式。 – fisher3421 2015-03-30 09:09:48
5
您使用使用cache和dataSource创建的cacheDataSource。这个cacheDataSource然后被ExtractorSampleSource使用。下面是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);
相关问题
- 1. 在ExoPlayer中使用缓存
- 2. 使用Exoplayer的VOD缓存2.2
- 3. 得到缓冲数据exoplayer
- 4. Android谷歌Exoplayer 2.2 HLS和DASH流缓存
- 5. 用ExoPlayer缓冲音频直播流
- 6. ExoPlayer getDuration
- 7. 保存视频离线而在exoplayer
- 8. ExoPlayer 2迁移
- 9. 在Android的Exoplayer
- 10. ExoPlayer和HLS流
- 11. Android ExoPlayer问题
- 12. 推荐缓冲液和重新缓存用于ExoPlayer实例数据的持续时间和改变这些
- 13. 如何使用ExoPlayer获得缓冲百分比更新?
- 14. Exoplayer - 你可以在缓冲时调用seekTo()吗?
- 15. Exoplayer停止循环
- 16. Github上:对于EXOplayer
- 17. ExoPlayer:显示字幕
- 18. Exoplayer - Widevine和MPEG DASH
- 19. ClearKey解密不ExoPlayer
- 20. 如何旋转ExoPlayer
- 21. IIS缓存和HTTP缓存
- 22. Web.config缓存和.NET缓存
- 23. C# - 缓存加载缓存
- 24. HTTP缓存:缓存控制
- 25. FIFO缓存vs LRU缓存
- 26. 可缓存对象缓存
- 27. 缓存或不缓存
- 28. Django缓存 - 清除缓存
- 29. 用Symfony2缓存API缓存
- 30. 在ExoPlayer上快速查找
我不认为有默认行为,你可以轻松做到这一点。它是开源的。您可以将其分叉并更改缓存的下载位置。 – tasomaniac 2015-02-04 11:10:35
我有同样的问题。你有没有找到实现这个的方法? – 2015-09-28 07:42:01
@ fisher3421你有什么解决方案我也在寻找相同的。 – 2018-02-22 06:57:51