Monotouch C#通过音量控制同时播放许多声音

时间:2012-11-18 23:55:05

标签: c# xamarin.ios avaudioplayer system-sounds

我正在使用Monotouch和C#为iOS制作战争游戏。我遇到了一些音频音效问题。

这就是我需要的东西:能够同时播放多种音效(一次可能高达10-20)和调节音量的能力(例如,如果用户放大了战场枪射击量越来越大)。

以下是我的问题:

使用AVAudioPlayer,我可以调节音量,但每个线程只能播放1个声音。因此,如果我想播放多个声音,我必须有几十个和几十个线程只是因为它们重叠...这是一场战争游戏,战场上有20名士兵。每个士兵在射击时都会有一个“声音线”来发出枪声,因为每个士兵都可能恰好在同一时间开火。我没有制作大量线程的问题,但我的游戏已经有数十个线程一直在运行,并且增加了几十个线程可能让我遇到麻烦......对吧?所以我宁愿不去添加几十个线程,除非我也有...

使用SystemSound,我可以在同一个线程中播放尽可能多的声音,但我无法调整音量....所以我的工作是,对于我所拥有的每个声音效果 - 保存它像4 4个不同体积的时间。这是一个很大的痛苦...用SystemSounds调整音量的任何方法

这两个都回答了我的一些要求,但似乎都不是无缝的。我应该去AVAudioPlayer多线程噩梦之路吗?或SystemSound多文件与不同音量级别的噩梦之路?或者有更好的方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

终于找到了我的问题的解决方案。 AVAudioPlayer能够一次播放多个声音,但只能使用某些文件格式......详细信息可在此链接中找到。我无法同时播放声音效果的原因是因为文件格式被压缩而且iphone只有1个硬件解压缩器。

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