我使用Novocaine进行频率检测 - 它运行正常。 我非常欣赏Novocaine框架,因为它具有高性能且易于使用。
无论如何,只有一个问题: 从iPhone / iPad麦克风捕获声音,我想禁用扬声器输出,以防止声反馈(噪音)。我怎样才能做到这一点?到现在为止,我一直试图改变音频输出路径。任何想法都非常感谢!
当然,我发现独立于Novocaine框架我可以禁用硬件声音 - 但是当我这样做时,用户会得到一种工具提示("声音禁用")这对用户来说可能很烦人。一旦用户点击"捕捉声音,我宁愿暂时禁用声音。按钮没有注意到它。
答案 0 :(得分:1)
解决方案很简单,我几乎意外地发现了它:
输出块中的
[audioManager setOutputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels)
{ ... }
我只是将输出数据设置为零 - 在分析(使用FFT或卷积或互相关或其他什么)数据之后:
// silence the sound in order to disable sound feedback
for(int i=0; i<numFrames; i++) {
data[i] = 0.0;
}
就是这样!