最終更新:
moonlight_aska 2012年06月10日(日) 17:05:06履歴
音声メディアを再生するには, メディアプレイヤー(MediaPlayer)クラスを使う.

MediaPlayerクラスは, MP3やAAC LP/LTP等のメディアデータを再生することができる.
再生可能なメディアの種類については, 以下を参照.
http://developer.android.com/intl/ja/guide/appendi...
音声メディアは, 以下のように指定してもよい.

MediaPlayerクラスは, MP3やAAC LP/LTP等のメディアデータを再生することができる.
再生可能なメディアの種類については, 以下を参照.
http://developer.android.com/intl/ja/guide/appendi...
- MeidaPlayer01.java
- MediaPlayerのインスタンスを生成する.
- MediaPlayer#setDataSourceメソッドで, 再生する音声メディアを指定する.
- MediaPlayer#prepareメソッドで, メディア再生の準備(同期)をする.
- MediaPlayer#startメソッドで, メディア再生を開始する.
- 再生コントロールは, 以下のメソッドが利用可能.
- VideoView#startメソッド:再生開始
- VideoView#stopメソッド:再生停止
- VideoView#pauseメソッド:一時停止
- VideoView#seekToメソッド:シーク
package com.moonlight_aska.android.mediaplayer01;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
public class MediaPlayer01 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MediaPlayer player = new MediaPlayer();
try {
// 音声メディアの指定&再生
player.setDataSource("/sdcard/MusicSample/sample.m4a");
player.prepare();
player.start();
} 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
protected void onDestroy() {
// TODO Auto-generated method stub
Log.v("MediaPlayer", "onDestroy");
super.onDestroy();
if (player.isPlaying()) {
player.stop();
}
player.release();
}
}
音声メディアは, 以下のように指定してもよい.
// FileInputStreamのインスタンスを生成
final FileInputStream stream = new FileInputStream("/sdcard/MusicSample/sample.m4a");
// ファイルディスクリプタを設定
player.setDataSource(stream.getFD());
- MeidaPlayer02.java
- 再生終了イベントを取得するために, OnCompletionListenerインタフェースを実装する.
- MediaPlayerのインスタンスを生成する.
- MediaPlayer#setDataSourceメソッドで, 再生する音声メディアを指定する.
- MediaPlayer#prepareAsyncメソッドで, メディア再生の準備(非同期)をする.
- MediaPlayer#setPreparedListenerメソッドでリスナを設定する.
- 準備完了イベントが発生するとonPreparedメソッドが呼ばれるので, MediaPlayer#startメソッドでメディア再生を開始する.
package com.moonlight_aska.android.mediaplayer02;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
public class MeidaPlayer02 extends Activity implements OnPreparedListener {
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.prepareAsync();
player.setOnPreparedListener(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 onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
Log.v("MediaPlayer", "onPrepared");
player.start();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
Log.v("MediaPlayer", "onDestroy");
super.onDestroy();
if (player.isPlaying()) {
player.stop();
}
player.release();
}
}
コメントをかく