4

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 であるため、機能していないようです。この件についていくつかの検索を試みましたが、それに関するすべての質問には答えられず、実際の例は見られませんでした。

4

0 に答える 0