谁能告诉我为什么当我在公开赛中提高音高时音量会变低?音调越高,音量越低......
alSourcef(源,AL_PITCH,1.2f);alSourcef(源,AL_GAIN,1.0f);
使用此设置,音量仍然非常低。有没有办法欺骗它使增益超过1?也许这与距离有关?
仅供参考,源是从 AVrecorder 录制的声音,所以我不能将源音量设置得更高。
Afaik 幅度会随着音高变化而变化是不正常的。当音高设置为高于原始值时,openal 在乘数不完整时使用某种插值通过乘数(afaik)加速样本。
可能有一些罕见的情况下幅度会发生变化,但对于具有大量频率内容的较长样本可能不会(因为大多数自然声音往往如此)
我们感知到的幅度取决于音高有多响,请参阅等响度轮廓
也许这种效果可以解释您的问题?
作为解决方法,您可以降低正常音调的声音的增益,并为更高音调的声音使用更高的增益。
或者在附加/传递到缓冲区之前将源数据乘以乘数。