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

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日