C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

動画メディアを繰り返し再生するには, 再生完了通知を受け取り, 動画メディアを先頭に戻し再生する.

動画メディアの繰り返し再生

  • 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メソッドでリピート再生を設定できそうですね.
記事書いたときには, このメソッドに気づいていなかったようです.

0
Posted by aska 2015年01月23日(金) 23:05:58 返信

この記事が書かれた当時できたかどうかはわかりませんが、video.setOnPreparedListenerの中でmp.setLooping(true)すれば大丈夫ですね

0
Posted by hei 2015年01月22日(木) 13:11:27 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます