2

Monotouch と C# を使用して、iOS 用の戦争ゲームを作成しています。オーディオの効果音で問題が発生しています。

これが私が必要とするものです:多くの効果音を同時に再生する機能(おそらく一度に最大10〜20)と音量を調整する機能(たとえば、ユーザーが戦場にズームインすると、銃声の音量が大きくなります).

ここに私の問題があります:

AVAudioPlayer を使用すると、音量を調整できますが、スレッドごとに 1 つのサウンドしか再生できません。したがって、複数のサウンドを再生したい場合は、それらが重なる場合に備えて、何十ものスレッドを実行する必要があります... これは戦争ゲームで、戦場にいる 20 人の兵士を描いています。各兵士は発砲時に発砲音を再生するための「サウンド スレッド」を持っています。多くのスレッドを作成することに問題はありませんが、私のゲームではすでに数十のスレッドが常に実行されており、さらに数十のスレッドを追加すると問題が発生する可能性があります. だから、私もそうでない限り、何十ものスレッドを追加するというこの道を進みたくありません...

SystemSound を使用すると、同じスレッドで必要な数のサウンドを再生できますが、音量を調整することはできません....だから、ここでの私の作業は、私が持っているすべての効果音について、4 で 4 回のように保存することです。異なるボリューム。それは大きな苦痛です... SystemSoundsで音量を調整する方法はありますか??

これらは両方とも私の要件の一部に答えますが、どちらもシームレスに適合するようには見えません. AVAudioPlayer マルチスレッドの悪夢の道を行くべきですか? それとも、異なる音量レベルの SystemSound マルチファイルの悪夢の道?または、これを行うより良い方法はありますか?

前もって感謝します。

4

1 に答える 1

3

ついに私の問題の解決策を見つけました。AVAudioPlayerは、一度に複数のサウンドを再生できますが、特定のファイル形式でのみ再生できます...詳細はこのリンクで入手できます。効果音を同時に再生できなかったのは、ファイル形式が圧縮されていて、iPhoneにハードウェアデコンプレッサが1つしかないためです。

http://brainwashinc.wordpress.com/2009/08/14/iphone-playing-2-sounds-at-once/

于 2012-11-20T02:30:23.860 に答える