2013-12-15 18 views
7

W mojej aplikacji, jeśli iPhone jest podłączony do zestawu słuchawkowego Bluetooth, odtwarzaj dźwięk przez Bluetooth. W innym przypadku użyj głośnika domyślnego.iOS 7 Wyjście Bluetooth nie działa dla AVAudioSessionCategoryPlayAndRecord

Oto mój kod

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

Jednak, kiedy próbował użyć kategorii setCategory: AVAudioSessionCategoryPlayAndRecord. Trasa do urządzenia Bluetooth przestała działać ... Nie wiem dlaczego. Ponieważ przez prawo, opcja bluetooth powinien pracować tylko dla rekordu lub PlayAndRecord kategorii ...

* ważne/tylko z AVAudioSessionCategoryRecord i AVAudioSessionCategoryPlayAndRecord */

Dodawanie: Czy mogę mieć bluetooth dla tylko wyjście (wejście nadal używa domyślnego mikrofonu z telefonu)?

UPDATE

zmieniłem kolejność wywołując setMode najpierw, a następnie setCategory. Działa po raz pierwszy uruchamiając aplikację (wywołanie). Kiedy spróbowałem ponownie wykonać tę samą akcję, currentRoute nadal dawał mi wynik = Bluetooth, ale faktyczne wyjście powracało do domyślnego przedniego głośnika telefonu.

+0

Pomogło mi to w nieco innym problemie. Dziękuję Ci! – user3099609

+1

Twoje pytanie zawierało odpowiedź dla mnie. Dzięki! – vahotm

Odpowiedz

2

Minęło trochę czasu, odkąd wysyłam to pytanie, a ja zapomniałem o co chodzi w tym problemie ... Jeśli dobrze pamiętam, jest to spowodowane inną biblioteką, która ciągle przepisuje trasę wyjściową. jakoś to naprawiłem i sprawiłem, że działa tak, jak chcę.

Udostępniłem kod do biblioteki Jawbone o numerze AudioSessionManager. Nadzieja, która pomaga.