2015年4月2日木曜日

AndroidのMediaPlayerを使ってBGMを流す方法

目次へ



  • MediaPlayerを使ってBGMを流す


■■■■MediaPlayerを使ってBGMを流す方法■■■■

BGMを鳴らすには、MediaPlayerを使います。
使いたい音楽データはリソースとして、プロジェクトのresフォルダ内にrawという名前のフォルダを作成し、その中に保存をします。
MediaPlayerのインスタンスを作成するには、MediaPlayer#createメソッドを使います。
下の例はstartボタンを押すとBGMがスタートし、stopボタンを押すとストップするだけのプログラムです


stopを呼び出した後、もう1回再生するには、もう1度createを実行し、MediaPlayerを作り直しています。
なにかほかに方法がありそうな気がします。
stopのあと、prepareメソッドを呼び出したりしてみましたが、うまくいきませんので、とりあえず、忘れないように、createし直す方法だけ書いておきます。
何かわかったら、また追記します。


参考までに、例外の種類は次のとおりです。
stopした後、すぐstartを実行すると、IOException。
stopした後、prepareを呼び出すと、IllegalStateExceptionとなります。


ActivityクラスのonCreateメソッドで次のようにしました
res/rawにはbgm.mp3を入れています。

protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 mp = MediaPlayer.create(this, R.raw.bgm);

 //--------------startボタンの処理
 Button buttonStart = (Button) findViewById(R.id.buttonStart);
 buttonStart.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
   if(!mp.isPlaying()){
    mp.start();
   }
  }
 });
 //--------------stopボタンの処理
 Button buttonStop = (Button) findViewById(R.id.buttonStop);
 buttonStop.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
   if(mp.isPlaying()){
    mp.stop();
    mp.release();
    mp = MediaPlayer.create
     (MainActivity.this, R.raw.bgm);
   }
  }
 });
}





にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

0 件のコメント:

コメントを投稿