実践5.音声再生
ゲーム音楽や案内音声など、音を流すシーンは多々あります。
mp3音源を流してみましょう。
1.音声再生の実装の準備
まず、以下のレイアウトファイルを開きます。
「app > res > layout > activity_tameshi.xml」 ボタンをドラッグ&ドロップして、画面に追加します。 このようになれば成功です。 ボタンの「id」を「tameshi_btn_sound」に変更します。 ボタンの「text」を「sound」に変更します。
変更したら「Text」タブに切り替えます。 切り替えるとこうなります。 「id」が「tameshi_btn_sound」のボタンに以下を追加します。
android:onClick="onClick"
mp3音源を入手しておきましょう。
こちらのサンプルmp3をダウンロードします。
[サンプルmp3]
(※DL出来たらzipを解凍してください。)

mp3音源をプロジェクトフォルダのrawに格納します。
「app > src > main > res > raw」 Android Studioで以下のように、rawフォルダ内に「sound.mp3」が表示されていれば成功です。
2.音声再生の実装
ここから、実際に音声再生のプログラムを書いていきましょう。
「app > java > me.picnicapp.sample.picnicsample > TameshiActivity」。 「public class TameshiActivity extends Activity」
の後ろに、
「 implements View.OnClickListener」
を記述します。
この時点ではエラーとなり赤線が表示されますが、次以降の手順でエラーは解消されます。 「onCreate」メソッドの後ろに、「onClick」メソッドを追加します。
"on"と入力した時点で、メソッドの候補一覧が表示されますので、「onClick」にフォーカスを合わせてEnterキーを押すか、マウスでダブルクリックしてください。 このように、「onClick」メソッドが追加されました。 「onClick」メソッド内に以下のswitch文を記述します。
switch (v.getId()) {
    // soundボタンが押された時
    case R.id.tameshi_btn_sound:
        break;
}
音声再生を行う「playSound」メソッドを定義します。
まずは中身を書かずに枠だけ用意しましょう。
// 音を再生する
private void playSound() {

}
先ほど記述したswitch文から、「playSound」メソッドを呼ぶように記述します。
playSound();
TameshiActivityの先頭の方に、以下の変数を記述します。
これは、音声再生を制御するクラスです。
private MediaPlayer mediaPlayer = null;
合わせて、以下のimport文が必要になります。
import android.media.MediaPlayer;
「onCreate」メソッド内の「setContentView(...)」を呼び出している直後に、MediaPlayerを用意する以下のコードを記述します。
// 音声再生を制御するオブジェクトを用意しておく
mediaPlayer = MediaPlayer.create(this, R.raw.sound);
「playSound」メソッド内に、音声を再生する以下のコードを記述します。
if (!mediaPlayer.isPlaying()) {
    mediaPlayer.start();
}
実際にアプリを実行して動作を確認してみましょう!

もし音が聞こえない場合は、Androidの設定アプリを開いて端末の設定を確認しましょう。
Androidの音量には3種類の設定があり、アプリの音声再生に関係するのは「メディア音量」と呼ばれる項目です。
機種やOSバージョンによって見た目が異なりますが、各種メディアに関する音量項目を確認しましょう。