Android携帯ゲームを作って世界に配信してみよう(3) ―― 効果音の入れ方とデータの保存処理を学ぶ

山田 元康

tag: 組み込み

エレキ系DIY 2011年12月 7日

くろまるBGM再生の流れをコードで追いかけてみる

それでは,今回のゲームでMediaPlayerクラスを使って,どのようにBGMを再生しているかを説明します.

まず,タイトル画面を開く処理を行うときに,音楽を管理するSoundsクラスのplayBgmTitleメソッドを呼び出します(リスト1).

リスト1 TitleSceneクラスのstartメソッド(TitleScene.javaより抜粋)

/** 表示開始 */
public void start(SurfaceView view) {
blinkStarted = System.currentTimeMillis();
Sounds.playBgmTitle();
}

次に,playBGMTitleメソッドでは,タイトル画面で再生したい音楽のリソースIDを指定して,BGM再生メソッド(playBgmメソッド)を呼び出します(リスト2).

リスト2 SoundsクラスのplayBgmTitleメソッド(Sounds.javaより抜粋)

public static void playBgmTitle() {
playBgm(R.raw.bgm_title);
}

playBGMメソッドでは,まず,現在再生しているBGMがある場合は,そのBGMのリソースを破棄します(リスト3).そして,引数で渡されたリソースIDの音声ファイルを読み込み,音声管理クラスを生成します.BGMなので,MediaPlayerクラスのsetLoopingメソッドを読み出し,無限ループするようにします.次に,効果音がBGMに埋もれてしまわないように,MediaPlayerクラスのsetVolumeメソッドを使い,BGMのボリュームを低めに設定しています.

リスト3 SoundsクラスのplayBgmメソッド(Sounds.javaより抜粋)

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);
}
}

tag: Android, オープン・ソース, プログラミング言語

« 1 2 3 4 5 6 7 8 »

関連記事

AltStyle によって変換されたページ (->オリジナル) /