目次へ
|
■■■■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); } } }); } |
にほんブログ村
0 件のコメント:
コメントを投稿