我想用MediaCodec和MediaExtractor完成一个简单的音频和视频播放器,但发现很难控制并在解码和渲染时获得进度,例如MediaPlayer中的函数seekTo(),getCurrentPositon()。可能有人有好的建议吗?
答案 0 :(得分:1)
您应该像这样使用MediaExtractor:
extractor.seekTo(seekPoint, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
其中seekPoint在我们中表示,并表示从流开始的时间。对于音频搜索,我建议先执行视频搜索,然后在第一个解码视频帧中读取提取器时间:
extractor.getSampleTime();
并将其用于音频搜索。这允许更好的音频 - 视频同步,因为视频将寻求最接近的搜索,其可能距离期望的搜索点几秒,而音频通常具有更小的粒度。