2012-04-20 97 views
3

我想构建一个Android应用程序,将循环视频! 问题是它永远不会循环!它只播放一次视频! 在调试过程中,我意识到“myVideoView.setOnCompletionListener”正在执行,但视频无法播放! 我也尝试CompletionListener内部的“mp.reset()”。 也许我错过了一些不同的文件,比如Manifest?视频不循环Android VideoView

有什么想法? 这里是我的代码:

final VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview); 
     myVideoView.setVideoURI(Uri.parse(SrcPath));  

     myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer arg0) { 
       myVideoView.requestFocus(); 
       myVideoView.start(); 
      } 
     }); 
     myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       myVideoView.setVideoURI(Uri.parse(SrcPath)); 

      } 
     }); 
+0

无需再次设置相同的URI或路径只写myVideoView.start(); – 2012-04-20 13:10:39

回答

14

尝试onPreparedListener而不是onCompletionListener

myVideoView.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     mp.setLooping(true); 
    } 
}); 

希望这有助于。

+0

大概可以删除 “TODO自动生成方法存根” – 2014-09-06 13:19:37

5

试试这个。

myVideoView = (VideoView) findViewById(R.id.videoView1); 
myVideoView.setVideoPath(video_path); 
myVideoView.setMediaController(new MediaController(this)); 
myVideoView.start(); 

myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 

    @Override 
    public void onCompletion(MediaPlayer mp) { 

     myVideoView.start(); 

    } 
}); 

通过您的视频结束后重新开始......

+1

这是好的,但必须onCompletion 1 seekTo @Override 公共无效onCompletion(MediaPlayer的熔点){ mp.seekTo(1); myVideoView.start(); } 谢谢 – Sotos 2014-07-05 15:19:02

+0

这工作。不需要寻求。 – Randy 2014-11-13 22:11:48