Android VideoView重复

我有一个VideoView的应用程序,为了使video播放循环,我使用onCompletionListner来再次调用setVideoPath(),像这样:

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer arg0) { mVideoView.start(); } }); mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { //I have a log statment here, so I can see that it is making it this far. mp.reset(); // <--- I added this recently to try to fix the problem mVideoView.setVideoPath(file.getAbsolutePath()); } }); 

这个设置在我到目前为止遇到的所有设备上运行良好,我从来没有任何麻烦,不重复。

然而,我正在testing的摩托罗拉Xoom最近升级为ICS。 现在,它在ICS上,这将工作一段时间,并循环播放video。 但最终(我已经添加了一个计数器和一些日志,在停止之前没有任何模式成功循环多less次),它将退出循环,只是坐在电影中的第一帧的冻结帧。

有谁知道什么可能会导致这不再正常循环? 或者是否有人知道另一种方法让VideoView能够正常循环,在ICS下工作呢?

Solutions Collecting From Web of "Android VideoView重复"

如果你只有一个video播放,你可以在准备好的监听器中设置Looping(true)。

 myVideoView.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub mp.setLooping(true); } }); 

你完成了。

到目前为止:

 mp.reset(); 

在onCompletecallback内似乎修复它。 如果有人能解释一下是怎么回事,会非常感兴趣。