①SoundPoolを new して、
②音声ファイル読み込んで、
③再生する
SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); // ① int soundID = soundPool.load(context, R.raw.lalala, 1); // ② soundPool.play(soundID, 1.0F, 1.0F, 1, 0, 1.0F); // ③
【①の補足】
public SoundPool (int maxStreams, int streamType, int srcQuality)
引数:
- maxStreams … このSoundPoolオブジェクトで同時に扱う音声(Stream)の最大数
- streamType … 音声(stream)の種類。 AudioManagerクラスに定義されている
- srcQuality … サンプルレートの質。(現在はまだ未使用。 0 を使えとのこと)
- 成功なら、SoundPoolオブジェクト
- 失敗なら、null
【②の補足】
音声ファイルは、res/raw/lalala.ogg に設置したという想定。ResourceIDは R.raw.lalala になる。ここから想像できると思うが、同フォルダに lalala.wav や lalala.mp3 を設置しても区別がつかない。
ちなみに、音声ファイルを安定再生するためには oggファイルが良いとのこと。
public int load (Context context, int resId, int priority)
引数:
- context … コンテキスト
- resId … 音声ファイルのリソースID
- priority … 優先度サンプルレートの質。(現在はまだ未使用。将来互換性のため 1 を使え)
- sound ID (再生時に使用)
【③の補足】
public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
引数:
- soundID … load()メソッドで返される soundID
- leftVolume … 音量[左] (範囲:0.0~1.0)
- rightVolume … 音量[右] (範囲:0.0~1.0)
- priority … ストリーム優先度 (0 = 優先度最低)
- loop … ループの回数 (0 = ループ無し、-1 = 無限ループ)
- rate … 再生レート (1.0 = 標準の再生, 範囲:0.5~2.0)
- 成功なら、streamID(≠0)
- 失敗なら、0
【参考にしたサイト】
0 件のコメント:
コメントを投稿