XAudio2与OpenAL音量

问题描述 投票:1回答:1

我正在用C ++编写一段音频包装器代码,以在XAudio2和OpenAL上具有抽象的API(稍后再介绍)。一切正常,我已经启动并运行系统,并提供几乎相同的音频。

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

IXAudio2Voice :: SetVolume(volume)和alSourcef(source,AL_GAIN,volume);

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

但是,似乎它们在内部使用的曲线不匹配。将valume设置为0.5时,感觉像OpenAL比XAudio2更安静。

其中一个像线性地解释体积,另一个像对数。这两份文档都没有对此进行任何说明,只是说范围是[0; 1],并且没有说明其解释方式。

确实很难调试,因为它很难测量。有人这样做或有使用这些功能的经验吗?

谢谢。

Laci

我正在用C ++编写一段音频包装器代码,以在XAudio2和OpenAL上具有抽象的API(稍后再介绍)。一切正常,我已经启动并运行系统,并提供...

c++ audio openal xaudio2
1个回答
0
投票

您应该查看XAudio2帮助器XAudio2DecibelsToAmplitudeRatio ,该工具从dB计算浮点音量值

© www.soinside.com 2019 - 2024. All rights reserved.