Tôi đang khay để sử dụng ExoPlayer để phát lại video qua http. Và tôi muốn lưu video sau khi video được tải và phát video từ bộ nhớ cache. Làm thế nào để thực hiện bộ nhớ cache và phát lại từ bộ nhớ cache? Có thể cho tôi bất kỳ mẫu nào.Bộ nhớ cache ExoPlayer
Trả lời
Giao thức nào bạn đang sử dụng mpeg-dash hoặc http thuần.
Bạn có thể ghi đè lên HttpDataSource và ghi byte đến vào tệp và khi phát lại kiểm tra xem tệp có tồn tại ở vị trí mong muốn hay không và thay đổi InputStream được nạp cho trình phát từ tệp của bạn thay vì HttpDataSource.
Ghi đè HttpDataSource là cách tiếp cận sai vì ExoPlayer có các lớp đích để thực hiện bộ nhớ cache. Ví dụ: CacheDataSource. Tôi muốn có được quyền sử dụng các lớp học này. – fisher3421
Bạn sử dụng cacheDataSource được tạo bằng bộ nhớ cache và dataSource. CacheDataSource này sau đó được sử dụng bởi ExtractorSampleSource.Below là mã cho audioRenderer, tương tự có thể được thực hiện cho videoRender; chuyển tới exoplayerInstance.prepare (trình kết xuất).
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);
đây có phải là toàn bộ triển khai để nhận bộ nhớ đệm hoạt động không? Tôi đã thực hiện điều này, nhưng in 'cache.getCacheSpace()' hiển thị 0 cho dù tôi có làm gì. Bất kỳ ý tưởng hoặc lời khuyên để điền vào bộ nhớ cache? – welshk91
Chỉ hoạt động với DASH. Xem https://github.com/google/ExoPlayer/issues/420 – aeracode
- 1. Bộ nhớ cache liên tục của MediaPlayer trên Android bằng cách sử dụng ExoPlayer
- 2. Bộ nhớ cache trong bộ nhớ cache không lưu vào bộ nhớ cache
- 3. Bộ nhớ cache, tắt bộ nhớ đệm
- 4. Xóa bộ nhớ cache ActiveRecord
- 5. Xóa bộ nhớ cache NSURLConnection
- 6. Buộc xóa bộ nhớ cache
- 7. Symfony2 tắt bộ nhớ cache?
- 8. Mod_pagespeed xoá bộ nhớ cache?
- 9. Bộ nhớ cache dành riêng
- 10. SDWebImage xoá bộ nhớ cache
- 11. Bộ nhớ cache cho WKWebView
- 12. PhantomJS lưu bộ nhớ cache
- 13. Xóa bộ nhớ cache Magento
- 14. Tắt dịch bộ nhớ cache
- 15. Bộ nhớ cache JavaFx WebView
- 16. Xóa bộ nhớ cache cục bộ git
- 17. Android - Bộ nhớ cache bitmap chiếm rất nhiều bộ nhớ
- 18. Xóa bộ nhớ cache Sitecore cho một mục từ bộ nhớ cache lập trình
- 19. CakePHP 2.1: Bộ nhớ cache của trình duyệt vs Xem bộ nhớ cache
- 20. Gỡ bỏ bộ nhớ cache khỏi bộ nhớ cache L1 khi xóa L2
- 21. Android: Chiến lược bộ nhớ cache hình ảnh và bộ nhớ cache kích thước
- 22. ray giá bộ nhớ cache - cách xóa thủ công tất cả bộ nhớ cache
- 23. JPA chia sẻ bộ nhớ cache/bộ nhớ cache mức độ thứ hai trong WildFly
- 24. sự khác biệt giữa bộ nhớ cache l1 và bộ nhớ cache l2 là gì?
- 25. Bộ nhớ cache kết quả Doctrine không lưu vào bộ nhớ cache truy vấn
- 26. Grails \ Hibernate: Để lưu bộ nhớ cache hoặc không lưu vào bộ nhớ cache?
- 27. bộ nhớ cache chia sẻ bộ nhớ trong bộ nhớ actorecord
- 28. Chiến lược lưu bộ nhớ cache, Bộ nhớ cache đầu ra so với Bộ nhớ cache dữ liệu hoặc cả hai?
- 29. Lần truy cập bộ nhớ cache và bộ nhớ cache bị thiếu là gì? Tại sao ngữ cảnh chuyển đổi sẽ gây ra bộ nhớ cache bỏ lỡ?
- 30. Làm mới bộ nhớ cache nền JPA
Tôi không nghĩ rằng có hành vi mặc định mà bạn có thể thực hiện việc này một cách dễ dàng. Nó là mã nguồn mở. Bạn có thể nĩa nó và thay đổi vị trí tải xuống của bộ nhớ cache. – tasomaniac
Tôi có cùng một vấn đề. Bạn có tìm cách để thực hiện điều này không? –
@ fisher3421 bạn có bất kỳ giải pháp nào mà tôi cũng đang tìm kiếm không. –