2010-12-03 14 views
7

私は同時にいくつかのサウンドを再生しようとしています。私は現在、SoundPoolの共有インスタンスを使用しています。私は1,2、または3の音を遅れなく正確に同時に演奏したいと思います。SoundPoolを使ってサウンドを同期させる方法

SoundPool.play(...)を連続してX回呼び出すと、音が思うように音が順番に再生されます。これを達成するための適切なものは何ですか?私は同時にすべての音を準備して、それを1つの音として演奏することができますか?

須藤コード:それはあなたを助けるかもしれない、私は一度に一つの音のサウンドプールを行わ

SoundPool _soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 

_soundPool.load(_context, soundId1, 1); 
_soundPool.load(_context, soundId2, 1); 
_soundPool.load(_context, soundId3, 1); 

_soundPool.play(soundId1, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId2, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId3, vol, vol, 1, 0, 1f); 
+1

関連:http://stackoverflow.com/q/4350212/116249 – Patrick

+0

@Patrickを、私はスレッドのアプローチを試してみましたが、最初に私はそれが働いたと思った、あるいは十分なときに、少なくとも近いですちょうど2つのスレッドがあります。同じアイデアをとって、4つのスレッドすべてが同じことをしていると言うと、それをスケールアップすると、少し遅れて再び戻ります。多分次のステップは、音をミックスすることです...私は本当にこれまでにこれをやりたいとは思っていませんでしたが、この時点で私は他の多くのオプションが表示されません。 – YetAnotherDeveloper

+1

私は、サウンドミキシングが最良のアプローチだと思います。 jamesが他のスレッドで述べたように、エミュレータだけではなく、電話で試しましたか?ミックスとして再生したいサウンドが分かっている場合は、アプリケーションのライフサイクルの始めにそれを設定することができます。サウンドを再生するときにミックスする必要はありません。フロー。 – Patrick

答えて

関連する問題