4

ゲームで得点したポイントごとに「ディン」音が鳴るゲームがあります。場合によっては、非常に短い間隔でポイントを獲得できます。この場合、サウンドのオーバーラップを許可しないのでisPlaying()、次のサウンドを再生する前にメディアプレーヤーの関数が false になるのを待ちます。

私がこれまでに試したすべての電話 (確かにすべての 2.2 または 2.3) で、結果として、快い速射音の連続が得られました。

しかし、ちょうど今、4.0.3 で Samsung Galaxy S II を試しました。このマシンでは、各「ディン」は長いギャップで区切られています。そのisPlaying()状態は、音自体の 2 倍続くようです。Audacityによると、サウンドは約 0.1 秒続くはずですが、 isPlaying() は 0.28 秒間 true のままです。

サウンドは Audacity から Ogg Vorbis 形式に保存されます。

何がうまくいかなかったのですか?

4

1 に答える 1

2

SoundPool一度圧縮解除されてメモリに保持されるため、ゲームで速射サンプルを再生するために使用することをお勧めします。MediaPlayerその場でデコードしている可能性があり、準備が整うまでに遅延が発生します。デバイス間にこのような違いがある理由はわかりませんが、SoundPoolを試してみて、改善されるかどうかを確認します。

于 2012-05-30T15:51:35.410 に答える