ExoPlayer でキャッシュを実装するにはどうすればよいですか? 常にビデオ全体を再ダウンロードするのは本当に悪いです...
RendererBuilder で次のアプローチを試しました。
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(player.getMainHandler(),
null);
SimpleCache cache = (SimpleCache) Singleton.getSingleton(context).getCache();
// Always prints 0, that's the problem!
Log.d("CacheSize", String.valueOf(cache.getCacheSpace()));
DataSource dataSource = new DefaultUriDataSource(context, bandwidthMeter, userAgent);
CacheDataSource cacheDataSource = new CacheDataSource(cache, dataSource, false, false);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri, cacheDataSource, allocator,
BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE);
そして、私のシングルトンのコンストラクター内:
this.cache = new SimpleCache(context.getApplicationContext().getCacheDir(), new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 8));
しかし、ビデオの読み込みに時間がかかり、印刷されたキャッシュ スペースが常に 0 であるため、機能していないようです。この件についていくつかの検索を試みましたが、それに関するすべての質問には答えられず、実際の例は見られませんでした。