ExoPlayer にキャッシュを実装する例を探しています。
ExoPlayer のライブラリにはキャッシュに関するさまざまなクラスがあり、Google はこのビデオで CacheDataSource クラスを使用して実装できると説明していますが、Google はそのデモを提供していません。残念ながら、これは使い方がかなり複雑に思えるので、現在例を探しています (Google では成功していません)。
誰かが成功したり、役立つ情報を持っていますか? ありがとう。
レンダラービルダーでこのように実装しました
private static final int BUFFER_SEGMENT_SIZE = 64 * 1024;
private static final int BUFFER_SEGMENT_COUNT = 160;
final String userAgent = Util.getUserAgent(mContext, appName);
final DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
final Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);*
Cache cache = new SimpleCache(context.getCacheDir(), new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 10));
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
, new Mp4Extractor());
SimpleCache simpleCache = new SimpleCache(new File(context.getCacheDir(), "media/"+id), evictor);
ここでは、id
一意でなければなりません。