我正在尝试使用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”仅返回您为频道设置的音量。所以整个问题现在改为“如何从麦克风中检测音量?”
答案 0 :(得分:1)
FMOD不提供麦克风的硬件或操作系统音量级别的任何视图。
如果要测量当前录制信号的音量,请考虑System :: recordStart,播放FMOD :: Sound返回,然后调用Channel :: getWaveData。您可以根据需要处理波形数据,查找峰值或RMS。