我正在编写使用kAudioUnitSubType_VoiceProcessingIO
音频单元记录声音的应用程序。而且有几天我想捕获一个奇怪的错误。创建新的VPIO单元实例后,整个系统的内部麦克风增益会自动更改。
初始化代码:
AudioComponentDescription audioComponentDescriptionWildcard =
{
kAudioUnitType_Output,
kAudioUnitSubType_VoiceProcessingIO,
kAudioUnitManufacturer_Apple
};
AudioComponent audioComponent =
AudioComponentFindNext(NULL,
&audioComponentDescriptionWildcard);
OSStatus status = AudioComponentInstanceNew(audioComponent, &audioComponentInstance);
验证问题的最简单方法是在
AudioComponentInstanceNew
调用上创建一个断点,然后启动对Skype测试调用服务的skype调用。在此线路执行之前,已录制的声音响亮而清晰。执行此行后,麦克风电平会急剧下降。对于其他单位,一切正常。并且应用程序不会干扰其他录制应用程序。
最佳答案
这是因为默认情况下启用了自动增益控制。您需要将kAUVoiceIOProperty_VoiceProcessingEnableAGC属性更改为0。
http://developer.apple.com/library/ios/#documentation/AudioUnit/Reference/AudioUnitPropertiesReference/Reference/reference.html#//apple_ref/doc/constant_group/Voice_Processing_I_O_Audio_Unit_Properties
关于objective-c - 初始化kAudioUnitSubType_VoiceProcessingIO后出现奇怪的增益变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12922513/