c++ - XAudio2 与 OpenAL 音量

标签 c++ audio openal xaudio2

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

我似乎只是在设置源卷方面遇到问题。 XAudio2 和 OpenAL 都有一个方法来设置源语音的音量级别。

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

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

但是,他们内部使用的曲线似乎不匹配。例如,当将值设置为 0.5 时,感觉 OpenAL 比 XAudio2 更安静

就像其中一个可以线性解释体积,而另一个则可以解释对数。两个文档都没有提及它,只是说明范围是 [0;1],并且没有说明它是如何解释的。

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

谢谢。

拉西

最佳答案

您应该查看 XAudio2 帮助程序 XAudio2DecibelsToAmplitudeRatio 它从 dB 计算浮点音量值

关于c++ - XAudio2 与 OpenAL 音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309237/

相关文章:

c++ - (C++) 将指向动态分配数组的指针传递给函数

c++ - 帮助 C++ 中的字符输入和打印

c++ - 你有在圆上应用函数的技巧吗?

jquery - jQuery RSS Audio Player-HTML5/Flash后备

c++ - C++视频播放器的声音问题

c++ - 指向成员函数的指针在不同地址空间之间的可交换性

audio - 如何直接播放声音?

audio - 使用 alsa_out 插孔音频和多个音频设备

iphone - Core Audio/OpenAL 是否会对音频文件重新采样?

c - OpenAL 阻止 OpenGL 显示图形