频率分析 - 由麦克风提供的Novocaine和playthrough:如何禁用扬声器输出?

时间:2015-04-11 13:54:34

标签: ios iphone core-audio novocaine

我使用Novocaine进行频率检测 - 它运行正常。 我非常欣赏Novocaine框架,因为它具有高性能且易于使用。

无论如何,只有一个问题: 从iPhone / iPad麦克风捕获声音,我想禁用扬声器输出,以防止声反馈(噪音)。我怎样才能做到这一点?到现在为止,我一直试图改变音频输出路径。任何想法都非常感谢!

当然,我发现独立于Novocaine框架我可以禁用硬件声音 - 但是当我这样做时,用户会得到一种工具提示("声音禁用")这对用户来说可能很烦人。一旦用户点击"捕捉声音,我宁愿暂时禁用声音。按钮没有注意到它。

1 个答案:

答案 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;
     }

就是这样!