单触式C#可通过音量控制同时播放多种声音



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

这是我所需要的:同时播放许多音效的能力(可能一次最多10-20个)和调整音量的能力(例如,如果用户在战场上放大,枪声就会变大)。

以下是我的问题:

使用AVAudioPlayer,我可以调整音量,但每个线程只能播放1个声音。所以,如果我想播放多个声音,我必须有几十个线程,以防它们重叠。。。这是一款战争游戏,图为20名士兵在战场上。每个士兵在开枪时都会有一个"声音线"来播放枪声,因为每个士兵都可能恰好在同一时间开枪。我对生成大量线程没有问题,但我的游戏已经有几十个线程一直在运行,再添加几十个线程可能会给我带来麻烦。。。正确的所以我宁愿不走这条增加几十个线程的路,除非我也。。。

使用SystemSound,我可以在同一个线程中播放我想要的任意多个声音,但我无法调整音量。。。。所以我在这里的工作是,对于我拥有的每一个音效,在4个不同的音量下保存4次。这是一个巨大的痛苦。。。有办法用SystemSounds调节音量吗??

这两个都符合我的一些要求,但似乎都不完美。我应该走AVAudioPlayer多线程噩梦之路吗?还是SystemSound多文件不同音量级别的噩梦之路?或者有更好的方法吗?

提前谢谢。

终于找到了我的问题的解决方案。AVAudioPlayer能够同时播放多种声音,但只能使用某些文件格式。。。此链接提供了详细信息。我不能同时播放音效的原因是文件格式被压缩了,而iphone只有一个硬件解压缩器。

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

相关内容

  • 没有找到相关文章

最新更新