2013-12-15 10 views
7

In meiner App, wenn iPhone mit Bluetooth-Headset verbunden ist, spielen Sie Sound mit Bluetooth. Sonst verwenden Sie den Standardlautsprecher.iOS 7 Bluetooth-Ausgabe funktioniert nicht für AVAudioSessionCategoryPlayAndRecord

Hier ist mein Code

[[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]; 

Allerdings, wenn ich versuchte Kategorie setCategory zu verwenden: AVAudioSessionCategoryPlayAndRecord. Route zu Bluetooth-Gerät funktioniert nicht mehr. Ich weiß nicht warum. Denn durch das Recht, sollte die Bluetooth-Option nur für Aufnahme oder PlayAndRecord Kategorie arbeiten ...

/* nur gültig bei AVAudioSessionCategoryRecord und AVAudioSessionCategoryPlayAndRecord */

Zusatz: Kann ich Bluetooth für den Ausgang NUR (Eingang verwenden immer noch Standard Mic vom Telefon)?

UPDATE

änderte ich den Auftrag durch setMode Aufruf zunächst von setCategory gefolgt. Es funktioniert zum ersten Mal das Ausführen der Anwendung (ein Anruf). Als ich die gleiche Aktion erneut versuchte, gab currentRoute mir noch output = Bluetooth, aber die tatsächliche Ausgabe kehrt zum Standard-Frontlautsprecher zurück.

+0

Dies half mir bei einem etwas anderen Problem. Vielen Dank! – user3099609

+1

Ihre Frage enthielt eine Antwort für mich. Vielen Dank! – vahotm

Antwort

2

Es ist eine Weile her, seit ich diese Frage gepostet habe und ich habe vergessen, was genau das Problem ist ... Wenn ich mich richtig erinnerte, ist es wegen einer anderen Bibliothek, die den Ausgabeweg neu geschrieben hat. irgendwie habe ich es repariert und es so gemacht, wie ich es möchte.

Ich habe den Code zu Jawbones AudioSessionManager Lib beigetragen. Ich hoffe, das hilft.

Verwandte Themen