L'utilisation de VoiceProcessingIO audio unit subtype au lieu de RemoteIO provoque une baisse non désirée du volume de sortie

J'utilise RemoteIO dans mon application de chat vocal. Pour activer l'annulation d'echo, j'ai changé "kAudioUnitSubType_RemoteIO" en "kAudioUnitSubType_VoiceProcessingio" après avoir défini "kAudioSessionCategory_PlayAndRecord" comme le type de session. Maintenant, l'annulation de l'écho fonctionne, mais le niveau de volume de sortie a chuté de manière significative par rapport au niveau de sortie RemoteIO précédent. Est-ce que quelqu'un sait comment obtenir le même niveau de volume de sortie lorsque vous utilisez VoiceProcessingIO que lorsque vous utilisez RemoteIO?

15
demandé sur Halle 2013-07-08 17:36:11

2 réponses

je me rends compte que cela n'a pas été répondu depuis longtemps, mais j'ai trouvé que si vous faites ce qui suit entre les unités audio changeantes:

AudioComponentInstanceDispose(_ioUnit);

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient  error:&nsError];

[[AVAudioSession sharedInstance] setActive:NO error:&nsError];

alors il ne semble pas créer un tel énorme problème de sonie entre chaque unité. À ce stade, il suffit de réinitialiser votre unité audio et de définir le type de session à ce dont vous avez besoin.

3
répondu Chuck D 2014-10-30 16:50:30

Je ne pense pas qu'il soit possible de tenir compte de la perte de production en volume. Selon enregistrement de la chute de volume commutation entre RemoteIO et VPIO

" il n'y a pas D'API qui contrôle ce gain (ou dans votre cas le niveau de chute), tout est configuration interne par le système d'exploitation en fonction de la catégorie de Session Audio (pour exemple VPIO est prévu pour être utilisé avec PlayAndRecord toujours) et quelle unité IO a été mise en place."

Il serait également aide si vous avez dit ce que iOS que vous testiez sur parce qu'ils ont différentes gouttes dans le volume de sortie.

1
répondu Domecraft 2017-05-23 12:17:41