SoundPool
で2つのサウンドを再生しようとしています。Android:SoundPoolで無限にサウンドを再生すると、停止後に2回目が再生されない
次のテストコードは、サウンドなしで2番目の再生をレンダリングしました。 この現象は、HTC Heroデバイスとエミュレータの両方で、無限にサウンドを再生した場合にのみ発生します。私はアンドロイド1.6を使用しています。
最初の音のために、あなたのコード内でこの行を見ると...
SoundPool soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
int soundId1 = soundPool.load(getApplicationContext(), R.raw.sound1, 1);
int soundId2 = soundPool.load(getApplicationContext(), R.raw.sound2, 1);
// the first one plays
int streamId = soundPool.play(soundId1, 1.0f, 1.0f, 1, -1, 1.0f);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
soundPool.stop(streamId);
// the second one doesn't play
streamId = soundPool.play(soundId2, 1.0f, 1.0f, 1, -1, 1.0f);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
soundPool.stop(streamId);
...
どういう意味ですか?最初のサウンドは無限ループで再生されますが、2番目のサウンドを再生する前に停止します。コードを見てください。 – Genry
@goryachevそれについては気にしないで、これはどうですか?アンドロイドのドキュメントでは、playメソッドの最初のパラメータは、loadメソッドから返されるものでなければならないと言います。あなたのコードでは、 'soundId1'と' soundId2'はあなたが演奏で使うべき変数ですが、代わりに 'sound1'とsound2'を使っていますか...それとも単に打ち間違いですか? – Ogen
はい、これはタイプミスです。ありがとう。質問が更新されました。 – Genry