c++ - 无法在 FMOD 中检测音量

标签 c++ audio detection volume fmod

我正在尝试使用 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/

相关文章:

c++ - 在不使用任何 std::string 成员函数的情况下从 std::string 对象显式转换为 char*

c++ - 如何打印 pthread_t

javascript - 将音频数据 uri 字符串转换为文件

安卓应用程序。如何在代码中检测应用程序是新安装还是更新?

c++ - 在两个函数 C++ 之间发送一个数组

java - 如何在Java中将播放音频保存为WAV格式

Python - 混合两个音频 block

c++ - OpenCV、C++、使用 HoughLinesP 进行线检测

c++ - 检测图像上相当亮的点

c++ - C++ 中的默认参数不匹配?