ios 音频单元 kAUVoiceIOProperty_DuckNonVoiceAudio 错误 -10879

Posted

技术标签:

【中文标题】ios 音频单元 kAUVoiceIOProperty_DuckNonVoiceAudio 错误 -10879【英文标题】:ios Audio Unit kAUVoiceIOProperty_DuckNonVoiceAudio error -10879 【发布时间】:2012-11-03 22:40:58 【问题描述】:

我使用 Novocaine 框架https://github.com/alexbw/novocaine,如果我从麦克风暂停输入单元(但输出正在工作)然后再次播放,结果我得到回声。在苹果文档中,我看到了语音处理 I/O 音频单元属性 - kAUVoiceIOProperty_DuckNonVoiceAudio。我试试:

UInt32 zero = 0;
CheckError( AudioUnitSetProperty(inputUnit,
                                 kAUVoiceIOProperty_DuckNonVoiceAudio,
                                 kAudioUnitScope_Global,
                                 kInputBus,
                                 &zero,
                                 sizeof(UInt32)), "ERROR");

在方法 setupAudio 结果我有

ERROR (-10879)

在文档中我没有找到描述。一般来说,如何在 ios 中为 audioUnits 实现回声消除?我认为问题可能不在此属性中(因为默认情况下它应该启用).. 我发现这篇很棒的文章 - http://atastypixel.com/blog/developing-loopy-part-2-implementation/ 作者说有关相关信号及其减法.. 对于这种情况,我认为我需要自适应滤波器,但如果可以在 iOS 上实现吗?

有什么想法吗?

提前致谢

【问题讨论】:

【参考方案1】:

我找到了为什么会发生此错误的答案:在 Novocaine AudioComponentDescription init as:

inputDescription.componentSubType = kAudioUnitSubType_RemoteIO;

但在我的情况下是正确的:

inputDescription.componentSubType = kAudioUnitSubType_VoiceProcessingIO;

经过一些实验,我得出结论,在使用 kAudioUnitSubType_VoiceProcessingIO 后,回声禁用但不完全。可能是我没有正确使用它。

【讨论】:

以上是关于ios 音频单元 kAUVoiceIOProperty_DuckNonVoiceAudio 错误 -10879的主要内容,如果未能解决你的问题,请参考以下文章

发布 iOS 音频单元

如果该单元同时连接到输入单元和输出单元,是不是有 iOS 核心音频单元的回调?

直接调用音频单元而不是回调 iOS

iOS 音频单元:啥时候需要使用 AUGraph?

AEC ios 多音频单元图

在IOS核心音频中,如何找到文件播放器音频单元的真实当前播放头位置?