最終更新: moonlight_aska 2012年06月10日(日) 13:58:30履歴
動画メディアを繰り返し再生するには, 再生完了通知を受け取り, 動画メディアを先頭に戻し再生する.
- VideoView02.java
- findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したビデオビューのインスタンスを取得する.
- VideoView#setOnCompletionListenerメソッドをオーバーライドし, 再生完了通知を受け取るリスナーを設定する.
- MediaPlayer.OnCompletionListener.onCompletionメソッド内に, 再生が完了したときの処理を記述する.
- VideoView#seekToメソッドで, 動画メディアを先頭に戻す.
- VideoView#startメソッドで, 再度動画メディアを再生する.
package com.moonlight_aska.android.videoview02;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Window;
import android.widget.VideoView;
public class VideoView02 extends Activity {
private VideoView video;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
video = (VideoView)findViewById(R.id.videoview_id);
// 動画の設定&再生
video.setVideoPath("/sdcard/VideoSample/sample.3gp");
video.start();
// 再生完了通知のリスナーの設定
video.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
// 先頭に戻す
video.seekTo(0);
// 再生開始
video.start();
}
});
}
}
このページへのコメント
askaです.
ご指摘ありがとうございます.
MediaPlayer#setLoopingメソッドでリピート再生を設定できそうですね.
記事書いたときには, このメソッドに気づいていなかったようです.
この記事が書かれた当時できたかどうかはわかりませんが、video.setOnPreparedListenerの中でmp.setLooping(true)すれば大丈夫ですね