2017-01-05 10 views
3

Avec iOS10, il y a plus de possibilités de gérer AUdioSession, mais je n'arrive pas à garder le microphone du casque comme entrée alors que le son passe par le haut-parleur de l'iphone.AVAudioSession: entrée casque micro et haut-parleur iphone comme sortie

La méthode « overrideOutputAudioPort » ci-dessous également passer outre le port d'entrée audio comme le microphone iphone

let session = AVAudioSession.sharedInstance() 
do { 
    try session.setCategory(AVAudioSessionCategoryPlayAndRecord) 
    try! session.overrideOutputAudioPort(.speaker) 
} catch { 
} 

est-il une solution pour maintenir le casque en entrée?

Répondre

1

Comment j'undeerstand this Apple documentation, cela est impossible avec AVAudioSession:

Si un casque est branché au moment où vous définissez cette valeur de la propriété à kAudioSessionOverrideAudioRoute_Speaker, le système modifie le routage audio pour l'entrée ainsi que pour la sortie: l'entrée provient du microphone intégré; la sortie va au haut-parleur intégré.

+0

ce n'est pas vrai pour la nouvelle option "allowBluetoothA2DP" (depuis iOS10) 'essayer session.setCategory (AVAudioSessionCategoryPlayAndRecord, avec: .allowBluetoothA2DP)': avec cette option, l'entrée du microphone ne change pas (seule la sortie) –

+0

@DamienRomito intéressant. Je n'étais pas au courant de ça. Est-ce documenté (à côté de la (des) vidéo (s) WWDC)? – shallowThought

+0

non, j'ai également trouvé toute la documentation :( –