VideoView seekto()函数极不一致

我试图在Android的video中寻找特定的位置,由于其行为中显示的不一致性,我完全被卡住了。 这是我已经完成的事情清单

  1. VideoView.Seekto去一个video5:19,一个video5:17,5:32另一个毫秒(326000毫秒)!
  2. 由于VideoView不支持onSeekListener,因此我修改了源video视图并添加了对它的支持。 然而,它并没有停下来,从我想要的地方开始寻找 – 总是有一个滞后! onSeekListener在6秒之前立即被调用,然后我要停止。 在很多情况下,search栏显示正确的时间,并突然跳回几秒钟,即使我从onSeekCompleteListener调用video.start

为什么这么不一致? 有没有一个明确的方法,以在毫秒内想要去哪里在videoview? 我知道我应该使用MediaPLayer +表​​面,但由于VideoView只是两个包装,我在源修改它,但无济于事。

我知道这一点: http : //code.google.com/p/android/issues/detail?id=9135但是有没有什么办法来解决这个问题,并有一个明确的方式

1.)以毫秒为单位求精确的时间

2.)在确切的时间暂停和恢复?

Solutions Collecting From Web of "VideoView seekto()函数极不一致"

你必须等待寻求完成。

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 } }); } }); 

我知道这不是你的问题的正确解决scheme,但看看这个库是通过谷歌的默认video视图

https://github.com/brianwernick/ExoMedia

它具有所有的function,更多的是由默认的video视图支持。

您可以使用此video视图和emVideoView.seekTo(1000); 在video中跳到1000毫秒。 查询完成后,您还可以让setOnSeekCompletionListener执行处理。

我解决了这个问题

seekTo()函数在VideoView中不起作用