【发布时间】:2012-11-06 21:49:04
【问题描述】:
我正在使用 Monotouch 和 C# 为 iOS 制作战争游戏。我在音频音效方面遇到了一些问题。
这就是我所需要的:能够同时播放多种音效(可能一次最多 10-20 个)和调节音量的能力(例如,如果用户放大战场枪声越来越响)。
这是我的问题:
使用 AVAudioPlayer,我可以调节音量,但每个线程只能播放 1 个声音。所以如果我想播放多个声音,我必须有几十个线程,以防它们重叠......这是一个战争游戏,想象战场上的 20 名士兵。每个士兵在射击时都会有一个“声音线程”来播放枪声,因为每个士兵都可能恰好在同一时间开火。制作大量线程没有问题,但我的游戏已经有几十个线程一直在运行,再添加几十个线程可能会给我带来麻烦……对吗?所以我宁愿不走这条增加几十个线程的路,除非我也有......
使用 SystemSound,我可以在同一个线程中播放任意数量的声音,但我无法调节音量....所以我的工作是,对于我拥有的每种声音效果 - 将其保存为 4 4 次不同的体积。这是一个很大的痛苦......有什么方法可以使用 SystemSounds 调节音量??
这两个都满足了我的一些要求,但似乎都不是天衣无缝的。我应该走 AVAudioPlayer 多线程噩梦之路吗?还是 SystemSound 多文件、不同音量级别的噩梦之路?或者有更好的方法吗?
提前致谢。
【问题讨论】:
-
“但是我的游戏已经有几十个线程一直在运行” - 真的吗?这是为什么呢?
-
每个士兵有两个线程。一个“移动”线程,负责在战场上移动士兵。还有一个“Engage”线程,负责士兵“扫描”、“定位”、“射击”、“重装”等……它们是独立的线程,因此每个士兵都可以独立于下一个士兵操作。所以如果战场上有20个士兵,那就是40个线程……50个士兵,100个线程。现在我正在考虑为每个士兵添加音频线程...
标签: c# xamarin.ios avaudioplayer system-sounds