最終更新:
moonlight_aska 2012年06月10日(日) 13:59:54履歴
メディアの再生が終了すると再生終了イベントが発生するので, この再生終了イベントを処理するイベントリスナを設定する.
- 再生終了イベントを取得するために, OnCompletionListenerインタフェースを実装する.
- MediaPlayer#setCompletionListenerメソッドでリスナを設定する.
- 再生終了イベントが発生すると, onCompletionメソッドが呼ばれるので, ここに再生終了時の処理を記述する.
package com.moonlight_aska.android.mediaplayer01;
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.util.Log;
public class MediaPlayer01 extends Activity implements OnCompletionListener {
MediaPlayer player = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
player = new MediaPlayer();
try {
player.setDataSource("/sdcard/MusicSample/sample.m4a");
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.prepare();
player.start();
player.setOnCompletionListener(this);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
Log.v("MediaPlayer", "onCompletion");
// ここに再生完了時の処理を追加
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
Log.v("MediaPlayer", "onDestroy");
super.onDestroy();
if (player.isPlaying()) {
player.stop();
}
player.release();
}
}
コメントをかく