Android携帯ゲームを作って世界に配信してみよう(3) ―― 効果音の入れ方とデータの保存処理を学ぶ
●BGM再生の流れをコードで追いかけてみる
それでは,今回のゲームでMediaPlayerクラスを使って,どのようにBGMを再生しているかを説明します.
まず,タイトル画面を開く処理を行うときに,音楽を管理するSoundsクラスのplayBgmTitleメソッドを呼び出します(リスト1).
/** 表示開始 */ public void start(SurfaceView view) { blinkStarted = System.currentTimeMillis(); Sounds.playBgmTitle(); } |
次に,playBGMTitleメソッドでは,タイトル画面で再生したい音楽のリソースIDを指定して,BGM再生メソッド(playBgmメソッド)を呼び出します(リスト2).
public static void playBgmTitle() { playBgm(R.raw.bgm_title); } |
playBGMメソッドでは,まず,現在再生しているBGMがある場合は,そのBGMのリソースを破棄します(リスト3).そして,引数で渡されたリソースIDの音声ファイルを読み込み,音声管理クラスを生成します.BGMなので,MediaPlayerクラスのsetLoopingメソッドを読み出し,無限ループするようにします.次に,効果音がBGMに埋もれてしまわないように,MediaPlayerクラスのsetVolumeメソッドを使い,BGMのボリュームを低めに設定しています.
private static synchronized void playBgm(final int resourceId) { if (mediaPlayer != null) { mediaPlayer.release(); mediaPlayer = null; } mediaPlayer = MediaPlayer.create(context, resourceId); mediaPlayer.setLooping(true); mediaPlayer.start(); mediaPlayer.setVolume(0.1F, 0.1F); } } |