Android VideoView seekto()函数极不一致
我试图在Android的视频中寻找一个特定的位置,但我完全被卡住了,因为它在行为上表现出了不一致性。这是我做过的事情的清单Android VideoView seekto()函数极不一致,android,android-videoview,seek,Android,Android Videoview,Seek,我试图在Android的视频中寻找一个特定的位置,但我完全被卡住了,因为它在行为上表现出了不一致性。这是我做过的事情的清单 VideoView.Seekto在相同的毫秒(326000毫秒)内,一个视频转到5:19,一个视频转到5:17,另一个视频转到5:32 由于VideoView不支持onSeekListener,因此我修改了 源VideoView并添加了对它的支持。然而,它并没有停下来休息 从我想要的地方开始寻找——总有一个滞后!这个 onSeekListener会在我想要它的位置前6秒立即
我这样解决了这个问题
您必须等待搜索完成。 VideoView没有OnSeekCompleteListener(),但您可以从VideoView的onPrepared方法访问MediaPlayer,然后设置OnSeekCompleteListener,如下所示:
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnSeekCompleteListener(new OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
//Seek completed. Move seekbar
}
});
}
});
我知道这不是你问题的正确解决方案,但看看这个库,它是通过谷歌的默认视频视图制作的 它具有默认视频视图支持的所有功能和更多功能
您可以使用此视频视图和
emVideoView.seekTo(1000)
在视频中跳到1000毫秒。你也可以让setOnSeekCompletionListener
在seek完成时进行处理。我对这篇文章感兴趣。你对此有什么答案或解释吗?基本上这就是问题所在-如果你需要详细信息,请告诉我。我相信媒体文件本身存在不准确之处。Hi@Sufian是的,我的问题更多的是关于视频观看时间搜索的不一致性,而不是另一个答案似乎暗示的搜索工作/不工作。虽然我不记得我做了什么,但我认为我们当时接受了较小的delta seek错误。所以对我来说,我不确定其他答案是否提供了一种方法,即给定一个时间X,精确地寻找到那一点。虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-抱歉,编辑答案是为了更好地理解,而不是仅仅粘贴URL。