BGMとVoiceを想定して、MediaPlayer でサウンド・ファイルを再生してみたよ。
作ってみたのは、下記ソース。
public class mySound extends Activity {
private MediaPlayer mp;
private MediaPlayer mp1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// トラック 0
mp = MediaPlayer.create(this, R.raw.bgm);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(true);
mp.start();
//--
// トラック 1
mp1 = MediaPlayer.create(this, R.raw.voice);
mp1.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp1.start();
//--
}
@Override
public void onDestroy(){
if(mp.isPlaying()){
mp.stop();
}
if(mp1.isPlaying()){
mp1.stop();
}
super.onDestroy();
// アクティビティの終了
finish();
}
}
- 再生トラックを2つ設け、片方をループ再生、もう片方をループなしの再生をしている。
- 再生するファイルは、リソース・ファイル。
サウンド・ファイルは、res の中に raw というディレクトリを作って、その中に格納する。 - ファイル・フォーマットは、mp3, midi, ogg。それぞれ再生されることを確認。
13行目のsetAudioStreamType は、実行しなくても再生される。
ただし、今回のような、複数トラック時に再生されない時があった。
onDestroy
MediaPlayer での再生は、アプリ終了後も継続される。
そのため、onDestroy メソッドで再生停止するようにしているよ。
※.onDestroy は、アプリの終了時に実行されるmethod。
またアプリに実装する場合、onPause, onStop でも同様に、pause や stop を実行する必要がある。
じゃないと、アプリを切り替えられた時に、サウンドが再生され続けてしまうよ。
prepare ってナニよ?
MediaPlayer のprepare メソッドは、再生準備をするものらしい。
けれど、「create 直後はしなくていい」らしい。
どうも仕様の変更があったみたいで、昔はするものだったみたいだね。
今はcreate やstop と共に行われるようになっているみたいだ。
※.参考
https://groups.google.com/group/android-group-japan/msg/fdff0b4d0af94b4b?hl=ja
http://developer.android.com/reference/android/media/MediaPlayer.html


![著作権フリー背景素材集[家]](http://img.dlsite.jp/modpub/images2/work/doujin/RJ089000/RJ088095_img_mini.jpg)





migimaki.com











![著作権フリー背景素材集[家]](http://img.dlsite.jp/modpub/images2/work/doujin/RJ089000/RJ088095_img_sam.jpg)
右巻きソフトウェア
