2012-04-20 101 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