効果音の再生 – Sound pool –

Android

音の再生方法にはいくつかありますがBGMの再生と効果音の再生では適した方法がそれぞれあります。

例えば いつかはコケコッコ の鳴き声や ひよこちゃんの玉入れ大会 の鉄砲の音のような効果音には遅延の無いSound Poolが向いています。サウンドファイルはmp3やwav形式でresフォルダの中にrawフォルダを作って入れておきます。このrawフォルダはプロジェクト作成時デフォルトでは用意されないので後から作成してください。

    //効果音のためのSoundPool型クラスの宣言
    private SoundPool soundPool;
    //SoundPoolは識別番号で管理するのでint型変数を宣言
    private int soundPoolNumber;
    
    //ここは固定です。
    AudioAttributes audioAttributes = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_GAME).setContentType(AudioAttributes.CONTENT_TYPE_SPEECH).build();    
    soundPool = new SoundPool.Builder().setAudioAttributes(audioAttributes).setMaxStreams(1).build();

    //MainActivityの中で使用した例なので第一引数はthisとしていますがcontextを渡した先のクラスならそのcontextを引数にします。
    //gunが再生するファイル名です。拡張子は書きません。
    //
    soundPoolNumber = soundPool.load(this, R.raw.gun, 1);

    //再生します。第一引数は識別番号、第2引数、第3引数は左右のボリューム、優先度、ループ回数、再生速度
    //第二引数以降はほとんどの場合固定でも良いでしょう。
    soundPool.play(soundPoolNumber, 1.0f, 1.0f, 0, 0, 1);

BGMの再生はまた別の機会に説明します。

 

タイトルとURLをコピーしました