[Tips] 効果音再生(SoundPool)

時報アプリの時報音のような効果音(短い音)を鳴らす場合はSoundPoolクラスを使用します。

・setOnLoadCompleteListener

Android 2.2以降から使用できます。
SoundPoolではSoundPool#load()呼び出しが非同期で行われるため、読み込みが完了していなくても処理が帰ってきます。
そのため、SoundPool#loadの呼び出し直後にSoundPool#play()を行った場合に音が鳴らない場合があります。
このリスナーを使用すると読み込み完了が検知できます。

・play

読み込んでいた効果音を再生します。
読み込みが完了していなかった場合などの時は鳴らない場合もあります。
パラメーターには音量やループ回数などを指定できます。

・release

オブジェクトを解放します。
SoundPoolは保持上限があるようなので、必要なければ適時リリースした方が良いと思います。
ただし、2、3ファイルぐらいなら確保しっぱなしでも問題無いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です