我正在努力使用ExoPlayer通过http播放视频.我想在视频加载后保存视频并从缓存中播放.如何从缓存实现缓存和回放?可以给我任何样品.
我想下载一个在ExoPlayer中流式传输的视频.
另外,甚至在使用ExoPlayer之前,我HttpURLConnection从本地存储提供的输入流中下载了一个文件并播放该文件.这没关系,但是它并没有解决我的同步流和缓存问题.
ExoPlayer还提供了一个缓存系统,这些系统似乎只适用于DASH或HLS流类型.我没有使用这些,并希望缓存mp4与ExtractorRendererBuilder.(这里有相当广泛的主题:https://github.com/google/ExoPlayer/issues/420).
DefaultHttpDataSource确实有暴露的api,HttpURLConnection但我不确定我是否正在重用流.以下是ExoPlayer中提供的示例代码.
@Override
public void buildRenderers(DemoPlayer player) {
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
Handler mainHandler = player.getMainHandler();
// Build the video and audio renderers.
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(mainHandler, null);
DataSource dataSource = new DefaultUriDataSource(context, bandwidthMeter,userAgent);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri,dataSource,allocator,
BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE, mainHandler, player, 0);
MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(context,
sampleSource, MediaCodecSelector.DEFAULT, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000,
mainHandler, player, 50);
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource,
MediaCodecSelector.DEFAULT, null, true, …Run Code Online (Sandbox Code Playgroud)