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 回答