Seleccionar de forma independiente las routes de audio de input y salida

Estoy dispuesto a hacer una aplicación para iPad que haga lo siguiente:

Cuando los auriculares y un altavoz con conector de 30 pines / micrófono están conectados al mismo time, el usuario puede elegir la ruta de input y salida de forma independiente para la transmisión de audio en time real.

Ejemplo:
El usuario selecciona a través del evento táctil el dispositivo de input como el micrófono del auricular y selecciona el dispositivo de salida como los altavoces internos. El usuario puede hablar en el micrófono del auricular y en time real escuchar su voz en los altavoces internos.

Luego, el usuario selecciona el micrófono de 30 pines como input y los altavoces del auricular como salida. Y de manera similar, habla en el micrófono de 30 pines y escucha la salida en los altavoces de los auriculares.

Las llamadas como las siguientes no funcionan porque cambia automáticamente la input o salida al mismo periférico.

CFStringRef audioInputOverride = kAudioSessionInputRoute_HeadsetMic; AudioSessionSetProperty (kAudioSessionProperty_InputSource, sizeof(audioInputOverride), &audioInputOverride); CFStringRef audioOutputOverride = kAudioSessionOutputRoute_USBAudio; AudioSessionSetProperty (kAudioSessionProperty_OutputDestination, sizeof(audioOutputOverride),&audioOutputOverride); 

¿Puedo elegir independientemente input / salida en time real de transmisión de audio?