2 votes

Changement étrange du gain après l'initialisation de kAudioUnitSubType_VoiceProcessingIO

J'écris une application qui enregistre le son avec kAudioUnitSubType_VoiceProcessingIO unité audio. Et il y a un bug étrange que j'essaie d'attraper depuis quelques jours. Le gain interne du microphone est modifié automatiquement pour tout le système après la création d'une nouvelle instance de l'unité VPIO.

Code d'initialisation :

AudioComponentDescription audioComponentDescriptionWildcard =
  {
    kAudioUnitType_Output,
    kAudioUnitSubType_VoiceProcessingIO,
    kAudioUnitManufacturer_Apple
   };

AudioComponent audioComponent = 
  AudioComponentFindNext(NULL,   
  &audioComponentDescriptionWildcard);

OSStatus status = AudioComponentInstanceNew(audioComponent, &audioComponentInstance);

La manière la plus simple de vérifier le problème est de créer un point d'arrêt sur AudioComponentInstanceNew appeler et lancer un appel skype vers le service d'appel test skype. Avant que cette ligne ne s'exécute, la voix enregistrée est forte et claire. Après l'exécution de cette ligne, le niveau du microphone chute de façon spectaculaire.

Avec les autres unités, tout est normal. Et l'application n'interfère pas avec d'autres applications d'enregistrement.

1voto

ggfela Points 1162

C'est parce que le contrôle automatique du gain est activé par défaut. Vous devez changer la propriété 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X