以编程方式关闭 VoiceProcessingIO AGC
Posted
技术标签:
【中文标题】以编程方式关闭 VoiceProcessingIO AGC【英文标题】:Programmatically turn off VoiceProcessingIO AGC 【发布时间】:2013-03-26 18:38:12 【问题描述】:我正在使用 Apple 的 CoreAudio 框架来录制我的麦克风信号。自动增益控制似乎默认启用:https://developer.apple.com/library/mac/#documentation/AudioUnit/Reference/AudioUnitPropertiesReference/Reference/reference.html
kAUVoiceIOProperty_VoiceProcessingEnableAGC
Indicates whether automatic gain control is enabled (any nonzero value) or disabled (a value of 0). Automatic gain control is enabled by default.
Value is a read/write UInt32 valid on the global audio unit scope.
Available in OS X v10.7 and later.
Declared in AudioUnitProperties.h.
如何以编程方式关闭 CoreAudio 中的 AGC?
【问题讨论】:
【参考方案1】:假设您使用的是名为 voiceProcessor
的 AUVoiceProcessor 音频单元
UInt32 turnOff = 0;
AudioUnitSetProperty(voiceProcessor,
kAUVoiceIOProperty_VoiceProcessingEnableAGC,
kAudioUnitScope_Global,
0,
&turnOff,
sizeof(turnOff));
快速解释:这样做是将音频单元上的 属性 设置为 0,在这种情况下禁用 AGC。音频单元通常有两组可控值,分别称为 properties 和 parameters。您可以通过使用 AudioUnitSetProperty()
/ AudioUnitGetProperty()
和 AudioUnitSetParameter()
/ AudioUnitGetParameter()
相应地设置/获取这些值。
注意:您可能应该检查AudioUnitSetProperty()
返回的OSStatus
代码(如果没有错误,它将等于noErr
)。
【讨论】:
AudioUnitSetProperty
已被弃用,还有其他方式吗? developer.apple.com/reference/audiounit/… ?
@zevarito 我没有看到它已被弃用,但这对我来说还是失败了 - 返回 OSStatus kAudioUnitErr_InvalidProperty
。有什么建议吗?
这仍然是唯一解决此问题的帖子吗?到 2021 年还在为这个问题拉头发。有人吗?以上是关于以编程方式关闭 VoiceProcessingIO AGC的主要内容,如果未能解决你的问题,请参考以下文章