【问题标题】:Frequency analysis - Novocaine and playthrough by mic: how to disable speaker output?频率分析 - Novocaine 和麦克风播放:如何禁用扬声器输出?
【发布时间】:2015-04-11 13:54:34
【问题描述】:
我正在使用 Novocaine 进行频率检测 - 效果很好。
我非常欣赏 Novocaine 框架,因为它性能卓越且易于使用。
无论如何,只有一个问题:
从 iPhone/iPad 麦克风捕捉声音,我想禁用扬声器输出以防止声反馈(噪音)。我怎样才能做到这一点?到目前为止,我一直在徒劳地尝试更改音频输出路线。任何想法都非常感谢!
当然,我发现独立于 Novocaine 框架,我可以禁用硬件声音 - 但是当我这样做时,用户会得到一种工具提示(“声音禁用”),这可能会让用户感到烦恼.我更喜欢在用户点击“捕获声音”按钮时暂时禁用声音而不注意它。
【问题讨论】:
标签:
ios
iphone
core-audio
novocaine
【解决方案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;
}
就是这样!