2012-04-20 17 views
3

私はビデオをループするアンドロイドアプリを構築しようとしています! 問題はループしないことです!それはビデオを一度しか再生しません! デバッグ中に "myVideoView.setOnCompletionListener"が実行されているが、ビデオが再生されないことに気付きました! また、 "mp.reset()"をCompletionListenerの内部で試してみます。 マニフェストなど、別のファイルに何かが見つからないことがありますか?ビデオがループしない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

がちょうど(myVideoView.startを書き込み、再び同じURIまたはパスを設定する必要はありません...再起動)。 –

答えて

14

onPreparedListener代わりのonCompletionListener試してみてください:このことができます

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

希望 は、ここに私のコードです。

+0

はおそらく、これは良好であるが、onCompletionがseekTo 1 @Override公共ボイドonCompletion(MediaPlayerのMP){ mp.seekTo(1)しなければならない "TODO自動生成方法スタブ" –

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

を除去することができます。 myVideoView.start(); } ありがとう – Sotos

+0

これは機能しました。追求する必要はありませんでした。 – Randy

関連する問題