0

我正在尝试使用 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”仅返回您为频道设置的音量。所以现在整个问题变成了“如何检测麦克风的音量?”

4

1 回答 1

1

FMOD 不提供麦克风的硬件或操作系统音量级别的任何视图。

如果要测量当前录音信号的音量考虑 System::recordStart,播放返回的 FMOD::Sound 然后调用 Channel::getWaveData。您可以根据需要以您喜欢的方式处理波形数据以查找峰值或 RMS。

于 2012-12-20T11:33:10.773 回答