Android VideoView重复

时间:2012-02-01 14:34:33

标签: android loops android-videoview

我有一个带有VideoView的应用程序,为了让视频在循环中播放我使用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());
        }
    });

此设置适用于我目前遇到的所有设备,我从未遇到任何麻烦,不再重复。

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

有谁知道什么可能导致这种情况不再正常循环?或者有没有人知道另一种让VideoView正常循环的方法仍然可以在ICS下工作?

2 个答案:

答案 0 :(得分:10)

如果您只有一个视频可以播放,则可以在准备好的侦听器中设置“启用”(true)。

myVideoView.setOnPreparedListener(new OnPreparedListener() {

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

        }
    });

你已经完成了。

答案 1 :(得分:3)

到目前为止:

mp.reset();
onComplete回调中的

似乎解决了这个问题。如果有人能用它来解释发生了什么,那将会非常感兴趣。