androidアプリにSoundPoolで効果音をつける

2014年1月27日効果音

androidアプリを作るなら、効果音をつけると思います。

効果音をつける際に、SoundPoolを使います。

SoundPoolの利点は以下の2つです。

  • 再生時の遅延がない
  • 繰り返し再生が可能

再生時の遅延がないということから、効果音に適していることが分かるかと思います。

実際の使い方はこんな感じ。

	//効果音再生用
	private SoundPool mySoundPool;
	private int mySoundId;

	@Override
	protected void onResume() {
		// TODO 自動生成されたメソッド・スタブ
		super.onResume();
		//soundpoolの準備
		mySoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
		mySoundId = mySoundPool.load(getApplicationContext(), R.raw.lx_dark, 1);
	}
	//soundpoolで音を再生
	private void playSound(){
		AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
		int musicVol = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
		mySoundPool.play(mySoundId, (float) musicVol, (float) musicVol,
						0, 0, 1.0F);
	}

onResumeでSoundPoolを使う準備をします。

あとは任意の場所でplayを呼び出すだけです。

音のボリュームは音楽再生のものを使いたかったので、STREAM_MUSICとしてあります。

音楽再生用の音量調整

アプリを起動して音量の調整を行うと、普通は着信音の音量が変わるかと思います。

音楽再生用の音量調整をさせたい場合はcreate文に以下を追記します。

public void onCreate(bundle b){
	super.onCreate(b);
	setVolumeControlStream(AudioManager.STREAM_MUSIC);
}

setVolumeControlStreamでSTREAM_MUSICを指定してあげれば、音楽再生用の音量を調節することができます。

ちなみに、

STREAM_RINGが着信音、

STREAM_ALARMがアラーム音量、

他にもいくつかありますが、どれも名前ですぐに分かりますね。

テキストから音声素材を作る

簡単な音声素材を作りたいときにGoogleの翻訳ツールが使えます。

http://translate.google.com/translate_tts?tl=ja&q=おはよう

おはようとなっている部分を変更するだけでmp3のファイルが作られます。

ブラウザ上で右クリックで保存をすれば、mp3ファイルの取得ができます。

なかなか便利ですよね。

2014年1月27日効果音mp3,STREAM_MUSIC,よくやること,音声素材

Posted by ラン