我正在使用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?
答案 0 :(得分:2)
假设您正在使用名为voiceProcessor
UInt32 turnOff = 0;
AudioUnitSetProperty(voiceProcessor,
kAUVoiceIOProperty_VoiceProcessingEnableAGC,
kAudioUnitScope_Global,
0,
&turnOff,
sizeof(turnOff));
快速说明:这样做是将音频设备上的属性设置为0,在这种情况下会禁用AGC。音频单元通常有两组可控值,称为属性和参数。您可以相应地使用AudioUnitSetProperty()
/ AudioUnitGetProperty()
和AudioUnitSetParameter()
/ AudioUnitGetParameter()
来设置/获取这些值。
注意:您应该查看OSStatus
返回的AudioUnitSetProperty()
代码(如果没有错误,它将等于noErr
。)