2

kAudioUnitSubType_VoiceProcessingIOオーディオユニットで音声を録音するアプリを書いています。そして、私が数日間捕まえようとしている奇妙なバグがあります。VPIOユニットの新しいインスタンスを作成すると、システム全体の内部マイクゲインが自動的に変更されます。

初期化コード:

AudioComponentDescription audioComponentDescriptionWildcard =
  {
    kAudioUnitType_Output,
    kAudioUnitSubType_VoiceProcessingIO,
    kAudioUnitManufacturer_Apple
   };

AudioComponent audioComponent = 
  AudioComponentFindNext(NULL,   
  &audioComponentDescriptionWildcard);


OSStatus status = AudioComponentInstanceNew(audioComponent, &audioComponentInstance);

問題を確認する最も簡単な方法は、通話にブレークポイントを設定し、AudioComponentInstanceNewSkypeテスト通話サービスへのSkype通話を開始することです。このラインが実行される前に、録音された声は大きくはっきりしています。このラインを実行した後、マイクレベルは劇的に低下します。

他のユニットでは、すべてが正常です。そして、アプリは他の録音アプリケーションに干渉しません。

4

1 に答える 1

1

これは、自動ゲイン制御がデフォルトで有効になっているためです。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

于 2013-01-29T12:26:54.820 に答える