【发布时间】:2025-12-13 15:45:01
【问题描述】:
我正在尝试缓存 HLS 和 DASH 流媒体视频, 我尝试了很多解决方案,但无法使用 Exoplayer v2.2 许多问题重定向到以下链接,但没有得到任何适当的解决方案。 https://github.com/google/ExoPlayer/issues/420 和 Using cache in ExoPlayer。
在一个解决方案中,Google Exoplayer 2.2 中找不到“ExtractorSampleSource”类
OkHttpClient okHttpClient = new OkHttpClient.Builder().cache(new okhttp3.Cache(context.getCacheDir(), 1024000)).build();
OkHttpDataSource okHttpDataSource = new OkHttpDataSource(okHttpClient, "android", null);
OkHttpDataSource ok2 = new OkHttpDataSource(okHttpClient, "android", null);
HttpDataSource dataSource = new CacheDataSource(context, okHttpDataSource, ok2);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(
uri,
dataSource,
allocator,
buffer_segment_count * buffer_segment_size,
new Mp4Extractor(), new Mp3Extractor());
在其他解决方案中,在 v2.2 中找不到相同的错误“DefaultUriDataSource”类
DataSource dataSource = new DefaultUriDataSource(context, null, new OkHttpDataSource(getClient(context), userAgent, null, null/*, CacheControl.FORCE_CACHE*/));
所有解决方案都早了 1 到 2 年,并且不支持最新版本的 Google Exoplayer v2.2。
任何人有想法或任何示例或任何解决方案来使用 HLS 和 DASH 流进行缓存?
【问题讨论】:
标签: android caching streaming okhttp3 exoplayer