El uso del subtipo de unidad de audio VoiceProcessingIO en lugar de RemoteIO causa una caída no deseada en el volumen de salida

Estoy usando RemoteIO en mi aplicación de chat de voz. Para habilitar la cancelación de eco, cambié "kAudioUnitSubType_RemoteIO" a "kAudioUnitSubType_VoiceProcessingIO" después de configurar "kAudioSessionCategory_PlayAndRecord" como tipo de session. Ahora la cancelación de eco funciona, pero el nivel de volumen de salida se ha networkingucido significativamente en comparación con el nivel de salida RemoteIO anterior. ¿Alguien sabe cómo get el mismo nivel de volumen de salida cuando utiliza VoiceProcessingIO que cuando utiliza RemoteIO?

Me doy count de que esto no ha sido respondido en mucho time, pero descubrí que si haces lo siguiente entre cambiar las unidades de audio:

AudioComponentInstanceDispose(_ioUnit); [[AVAudioSession shanetworkingInstance] setCategory:AVAudioSessionCategoryAmbient error:&nsError]; [[AVAudioSession shanetworkingInstance] setActive:NO error:&nsError]; 

Entonces, parece que no crea un problema de volumen tan grande entre cada unidad. En este punto, simplemente reinicialice su unidad de audio y configure el tipo de session para lo que necesita.

No creo que sea posible explicar la pérdida de producción en volumen. De acuerdo con el volumen de grabación, la conmutación de caída entre RemoteIO y VPIO

"No hay ninguna API que controle este nivel de ganancia (o en su caso), todo el sistema operativo lo configura internamente según la categoría de session de audio (por ejemplo, se espera que VPIO se use con PlayAndRecord siempre) y qué unidad de IO se configuró "

También ayudaría si dijera qué iOS estaba probando porque tienen diferentes caídas en el volumen de salida.