我試圖使用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