objective-c - 初始化kAudioUnitSubType_VoiceProcessingIO后出现奇怪的增益变化

标签 objective-c audio core-audio

我正在编写使用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/

相关文章:

ios - UIDatePicker 在 iOS 9 中无法正确显示

windows - 什么是音频端点?

objective-c - AVCaptureSession和AudioQueue

ios - 如何使用 MPVolumeView 来更改音频输出设备。喜欢 WhatsApp 和视频群聊

macos - Xcode 4 的 AudioUnit 项目模板?

c - 音频生产者线程与 OSX AudioComponent 消费者线程和 C 中的回调

objective-c - NSPredicate 因包含方括号的路径而崩溃

ios - 意外数据保存在iCloud中

iphone - 在 ios 中使用 UITableView 创建图像网格

java - 在 Android 上混合两个文件音频 wav 使用短数组