前々回は、【初公開】androidアプリ初公開で一番つまずいた広告の挿入
前回は、ListViewのスクロール時の色が設定した色にならないのを解消する

って感じで書いてきましたが、android開発ブログ第3弾は、SoundPoolによる効果音の設定です!

最近公開したアプリ「いろはにほへと!」では、SoundPoolクラスを使って効果音を出しています。

最初は、MediaPlayerクラスを使って効果音を出していたのですが、タイムを競うような反応速度がシビアなゲームの場合、ちょっとタイムラグが気になるんです。
で、SoundPoolクラスを使うように変更しました。

1.onCreateでサウンドプールを生成
まずは以下のようにサウンドプールを生成します。
SoundPoolの第一引数は、サウンドを保持する数です。
private SoundPool soundPool;
private int sound1;

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 // サウンドプールの生成
 Context context = this.getApplicationContext();
 soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
 sound1 = soundPool.load(context, R.raw.sound1, 1);

2.現在設定されている音量を取得
これはやらなくてもいいですが、音量調節はできた方がいいので一応。
private SoundPool soundPool;
private int sound1;
private int volume;

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 // サウンドプールの生成
 Context context = this.getApplicationContext();
 soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
 sound1 = soundPool.load(context, R.raw.効果音1, 1);
 AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
 volume = audio.getStreamVolume(AudioManager.STREAM_RING);

3.効果音を再生する
音を出したいところで、以下のように呼び出す。
soundPool.play(sound1, (float)volume, (float)volume, 0, 0, 1.0f);

4.終了する時には開放する
protected void onDestroy() {
 super.onPause();
 gLSurfaceView.onPause();
 // サウンドプールを開放する
 soundPool.release();


ってな感じでした!