我正在尝试使用 Fmod 获取麦克风输入的音量,但 getVolume 始终返回 0。 是的,我已经测试过,我的麦克风工作正常。
循环运行:
float tempvolume = 0.0f;
result = channel->getVolume(&tempvolume);
ERRCHECK(result);
//Set the sound volume
channel->getVolume(&tempvolume);
if (tempvolume < 0.1f){
do something
}else{
do something else
}
但正如我所说,tempvolume 始终等于 0.0
我能做什么?
编辑: 我现在意识到“getVolume”仅返回您为 channel 设置的音量。所以整个问题现在变成了“我如何检测麦克风的音量?”
最佳答案
FMOD 不提供任何关于麦克风的硬件或操作系统音量级别的 View 。
如果要测量当前录音信号的音量,请考虑 System::recordStart,播放返回的 FMOD::Sound,然后调用 Channel::getWaveData。您可以按照自己喜欢的方式处理波形数据,根据需要查找峰值或 RMS。
关于c++ - 无法在 FMOD 中检测音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13128401/