我正在开发视频流应用程序,我正在使用ExoPlayer作为我的视频流媒体。
当我在视频的currentPosition之前寻找位置时,我怎么能以某种方式缓存或保留缓冲区。
请注意,我没有使用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视频的缓冲区,但在我的应用程序中却没有!问题部分相当混乱。有人能指出我正确的方向吗?
答案 0 :(得分:0)
我写了一个数据源,它正在运行。如果您遇到同样的问题,可以找到答案here。
如果您遇到类似的问题而且您的服务器结构似乎与我的不同,您可以阅读源代码以获取有关如何解决问题的灵感。