XAudio2 是不是有最大声音数?

Posted

技术标签:

【中文标题】XAudio2 是不是有最大声音数?【英文标题】:Does XAudio2 have a maximum number of voices?XAudio2 是否有最大声音数? 【发布时间】:2016-08-25 10:01:01 【问题描述】:

一段时间前,我们开始将声音引擎迁移到 XAudio2,但尚未完成。目前我们仍在使用 OpenAL,并且遇到了一个问题,即“源”的最大数量(我认为在 XAudio2 中称为“声音”)取决于您的硬件。

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

我无法找到任何有关这方面的信息,也没有看到人们在使用 XAudio2 解决此问题的任何帖子...所以我猜没有限制?

【问题讨论】:

XAudio2 没有硬性语音限制,因为它都是软件混音,但根据您的目标硬件有实际限制。 是的,这就是我所看到的 - 没有硬性限制,但在压力测试时会出现音频问题。如果您添加为答案,我会接受。 【参考方案1】:

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

XNA Game Studio 在 Xbox 360 上实施了 300 个声音的限制,因此对于试图同时运行完整 3D 游戏的“现代 PC”来说,这可能是一个实际的上限。 3D 定位声音的数量、运行的效果器/DSP 的数量以及其他因素也会大大降低这个数字。

通常有 64 种以上的播放声音可能很难挑选出来,因此大多数语音管理系统会重复使用合理的声音子集并动态分配它们。例如,DirectX Tool Kit for Audio 语音管理默认为“无限”语音,但支持设置分配给“单次”和“实例”的最大语音数量、回收语音池等机制。

【讨论】:

以上是关于XAudio2 是不是有最大声音数?的主要内容,如果未能解决你的问题,请参考以下文章

XAudio2播放PCM

Mingw,XAudio2和GetProcAddress失败

XAudio2学习之采样率转换

XAudio2音量和音调控制

在 xaudio2 中集成 3D 音频

Windows 8 xaudio2 在多点触控应用程序中播放 wav 文件