寻求mp4的Exoplayer删除缓冲区

Exoplayer seeking mp4 removes buffer

我正在开发一个视频流应用程序,我正在使用 ExoPlayer 作为我的视频流。

当我寻找视频当前位置之前的位置时,如何以某种方式缓存或保留缓冲区。

请注意,我没有使用 DASH 或 HLS,而是以传统方式进行流式传输。

DefaultHttpDataSource dataSource = new DefaultHttpDataSource("android", null);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(
                uri,
                dataSource,
                allocator,
                buffer_segment_count * buffer_segment_size);
videoTrackRenderer = new MediaCodecVideoTrackRenderer(context, sampleSource, MediaCodecSelector.DEFAULT, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 2000, new Handler(context.getMainLooper()), this, 1000);
audioTrackRenderer = new MediaCodecAudioTrackRenderer(sampleSource, MediaCodecSelector.DEFAULT, new Handler(context.getMainLooper()), this);
mPlayer.prepare(videoTrackRenderer, audioTrackRenderer);

我在问题部分进行了搜索,发现(如果没有错的话)它保留了 mp4 视频的缓冲区,但在我的应用程序中却没有!问题部分相当混乱。有人能指出我正确的方向吗?

我写了一个数据源,它正在运行。如果您有同样的问题,您可以找到答案 here

如果您遇到类似的问题并且您的服务器结构似乎与我的不同,您可以阅读源代码以获取解决问题的灵感。