以编程方式关闭VoiceProcessingIO AGC

时间:2013-03-26 18:38:13

标签: ios audio core-audio

我正在使用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 个答案:

答案 0 :(得分:2)

假设您正在使用名为voiceProcessor

的AUVoiceProcessor音频单元
UInt32 turnOff = 0;
AudioUnitSetProperty(voiceProcessor,
                     kAUVoiceIOProperty_VoiceProcessingEnableAGC,
                     kAudioUnitScope_Global,
                     0,
                     &turnOff,
                     sizeof(turnOff));

快速说明:这样做是将音频设备上的属性设置为0,在这种情况下会禁用AGC。音频单元通常有两组可控值,称为属性参数。您可以相应地使用AudioUnitSetProperty() / AudioUnitGetProperty()AudioUnitSetParameter() / AudioUnitGetParameter()来设置/获取这些值。

注意:您应该查看OSStatus返回的AudioUnitSetProperty()代码(如果没有错误,它将等于noErr。)