android MediaExtractor MediaCodec seek

android MediaExtractor MediaCodec seek,android,android-mediacodec,seek,mediaextractor,Android,Android Mediacodec,Seek,Mediaextractor,再问一次,伙计们 我使用MediaExtractor和MediaCodec在android设备上播放MP4文件。在我尝试添加提取器.seekto()之前,一切都正常 如果我只是用我的播放器播放mp3文件,就可以很好地查找功能。但是,当我尝试使用MP4文件时,视频没有更新。我试着调试代码,发现mplayerxtractor.getSampleTrackIndex()总是返回1(参考音频曲目) 但我不知道如何修复它 我不能把我所有的代码都放在这里。所以请先给我一些建议。非常感谢 更新:我可以向后搜索

再问一次,伙计们

我使用MediaExtractor和MediaCodec在android设备上播放MP4文件。在我尝试添加提取器.seekto()之前,一切都正常

如果我只是用我的播放器播放mp3文件,就可以很好地查找功能。但是,当我尝试使用MP4文件时,视频没有更新。我试着调试代码,发现
mplayerxtractor.getSampleTrackIndex()
总是返回1(参考音频曲目)

但我不知道如何修复它

我不能把我所有的代码都放在这里。所以请先给我一些建议。非常感谢


更新:我可以向后搜索mp4文件和webm文件。如果我使用webm文件向前搜索,视频将在搜索操作的跳转时间之后开始播放。对于mp4文件,它永远不会再次启动。

什么是“视频未更新”呢?您是否使用了
SEEK\u TO\u CLOSEST\u SYNC
?@fadden我的意思是音频在我搜索的正确时间进行搜索,而视频没有。视频在当前时间刚刚停止。顺便说一句,我使用surfaceview渲染输出。@fadden是的,我使用SEEK\u to\u最接近的同步。这是我的代码“mplayerxtractor.seekTo((长)progress*1000,MediaExtractor.SEEK\u TO\u CLOSEST\u SYNC);”进步就是时间millisecond@fadden我看了很多你的帖子,我想你对MediaCodec和MediaExtractor qutie很了解。那么你知道另一个困扰我的问题吗。我把它贴在这里。很多感谢您是否有两个单独的类来处理音频和视频,还是只有一个类来确定内部是音频还是视频?在第二种情况下,线程是否正确同步,是否存在被另一个线程修改的类的全局变量?您是否根据当前位置正确计算寻道点?