XAudio2 与 OpenAL 音量

XAudio2 vs. OpenAL volume

我正在用 C++ 编写一段音频包装器代码,以便对 XAudio2 和 OpenAL(以及稍后的更多内容)进行抽象 API。一切正常,我已启动系统 运行,提供几乎相同的音频。

我似乎只是在设置源卷时遇到问题。 XAudio2 和 OpenAL 都有设置源语音音量的方法。

IXAudio2Voice::SetVolume(音量)和 alSourcef(源,AL_GAIN,音量);

根据文档,两个函数都采用音量参数,应该在 [0;1] 范围内以设置级别。

但是,他们内部使用的曲线似乎不匹配。当将值设置为 0.5

时,感觉 OpenAL 比 XAudio2 更安静

就像他们中的一个会线性地解释音量而另一个就像对数一样。这两份文件都没有说明,只是说明范围是 [0;1] 并且没有说明它是如何解释的。

调试真的很难,因为它很难测量。有人做过这样的事情,或者有使用这些功能的经验吗?

谢谢。

拉齐

您应该查看 XAudio2 助手 XAudio2DecibelsToAmplitudeRatio ,它根据 dB

计算浮点音量值