2013-12-15 12 views
7

Nella mia app, se l'iPhone è collegato alle cuffie Bluetooth, riprodurre l'audio con Bluetooth. Altrimenti usa altoparlante predefinito.Uscita Bluetooth iOS 7 non funzionante per AVAudioSessionCategoryPlayAndRecord

Ecco il mio codice

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; 
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVoiceChat error:nil]; 
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

Tuttavia, quando ho provato ad usare categoria setCategory: AVAudioSessionCategoryPlayAndRecord. Il percorso verso il dispositivo bluetooth ha smesso di funzionare .. Non so perché. A causa di diritto, l'opzione bluetooth dovrebbe funzionare solo per i record o PlayAndRecord categoria ...

/valido * soltanto con AVAudioSessionCategoryRecord e AVAudioSessionCategoryPlayAndRecord */

Aggiunta: Posso avere il bluetooth per l'uscita SOLO (l'input utilizza ancora il microfono predefinito dal telefono)?

UPDATE

ho cambiato l'ordine chiamando setMode primo, seguito da setCategory. Funziona per la prima volta eseguendo l'applicazione (una chiamata). Quando ho provato a ripetere la stessa azione, currentRoute mi ha dato comunque output = Bluetooth, ma l'uscita effettiva ritorna al diffusore frontale del telefono predefinito.

+0

Questo mi ha aiutato in un problema leggermente diverso. Grazie! – user3099609

+1

La tua domanda conteneva una risposta per me. Grazie! – vahotm

risposta

2

È passato un po 'di tempo da quando ho postato questa domanda e mi sono dimenticato di quale sia esattamente il problema ... Se ricordo bene, è dovuto a un'altra lib che ha continuato a riscrivere il percorso di output. in qualche modo l'ho risolto e l'ho fatto funzionare come voglio io.

Ho fornito il codice a Jawbone AudioSessionManager lib. Spero possa aiutare.

Problemi correlati