XAudio2 是否有最大数量的声音?

Does XAudio2 have a maximum number of voices?

我们开始将我们的声音引擎迁移到 XAudio2,但还没有完成。目前我们仍在使用 OpenAL 并遇到了一个问题,即 'sources'(我认为在 XAudio2 中称为 'voices')的最大数量因您的硬件而异。

我们可以升级我们的 OpenAL 东西以回收资源,但如果 XAudio2 为我们解决了这个问题,那么我宁愿专注于完成迁移。

我无法找到关于此的任何信息,也没有看到任何为 XAudio2 问题苦苦挣扎的人的帖子...所以我猜没有限制?

XAudio2 没有硬性语音限制,因为它全是软件混音,但存在基于您的目标硬件的实际限制,通常会导致混音器无法跟上的故障。

XNA Game Studio enforced a limit of 300 voices on Xbox 360, so that's probably a practical upper-limit for 'modern PCs' that are trying to run full 3D games at the same time. Number of 3D positional voices, number of effects/DSPs running, and other factors will also lower that number a fair amount.

通常有超过 64 种播放声音可能很难挑选出来,因此大多数语音管理系统会重复使用合理的语音子集并动态分配它们。例如,DirectX Tool Kit for Audio 语音管理默认为 "unlimited" 语音,但支持设置分配给 'one-shots' 和 'instances' 的最大语音数的机制,回收语音池,等等