4

我正在使用 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?

4

1 回答 1

4

假设您使用的是名为 AUVoiceProcessor 音频单元voiceProcessor

UInt32 turnOff = 0;
AudioUnitSetProperty(voiceProcessor,
                     kAUVoiceIOProperty_VoiceProcessingEnableAGC,
                     kAudioUnitScope_Global,
                     0,
                     &turnOff,
                     sizeof(turnOff));

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

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

于 2013-03-27T12:29:51.800 回答