2012-10-30 12 views
12

jestem napotyka następujący problem: AirPlay nie będzie dostępna, gdy mogę ustawić play-and-record kategorię do sesji audio w mojej aplikacji:AVAudioSessionCategoryPlayAndRecord sprawia AirPlay niewidoczny

[[AVAudioSession sharedInstance] 
     setCategory: AVAudioSessionCategoryPlayAndRecord 
     error: &setCategoryError]; 

Ta rozmowa sprawia AirPlay znikają i przekierowuje audio do głośnika natychmiast.

Problem można łatwo odtworzyć np. na przykładowym projekcie avTouch z dokumentacji Xcode, zastępując kategorię AVAudioSessionCategoryPlayback za pomocą AVAudioSessionCategoryPlayAndRecord: w oryginalnym przykładzie selektor AirPlay jest widoczny i pozwala zmienić źródło wyjściowe, podczas gdy w kategorii AVAudioSessionCategoryPlayAndRecord selektor znika.

Czy istnieje odpowiedni sposób przejścia do kategorii AVAudioSessionCategoryPlayAndRecord, aby funkcja AirPlay była nadal dostępna?

(A pytanie jak to było already asked, ale nie otrzymałem żadnej odpowiedzi.)

+0

Prawdopodobnie musisz wypróbować niektóre prywatne interfejsy API. Sprawdź, czy to pomoże. http://spin.atomicobject.com/2012/04/23/ios-mirroring-and-programmatic-airplay-selection/ Wymieniają niektóre prywatne apisy. – iDev

+1

@ACB: dziękuję! Spojrzałem na wspomniany artykuł, ale jak mówisz, używają prywatnych interfejsów API, z których nie mogę korzystać, ponieważ projekt, nad którym pracuję, jest dystrybuowany za pośrednictwem App Store. – Anastasia

+0

@Anastasia Masz rozwiązanie? Mam taki sam problem z tobą. Dzięki – Jacky

Odpowiedz

-1

Cóż, AirPlay oraz kategoria PlayAndRecord są po prostu niekompatybilne. Tego dowiedziałem się z forów Apple.

Po co jest potrzebne wejście audio w urządzeniu, gdy wyjście audio dzieje się gdzie indziej?

+1

Aplikacja odtwarza strumień wideo (ewentualnie wysyłając dźwięk przez AirPlay) i nagrywa wspomniany strumień w tym samym czasie. Ma sens? – Anastasia

+0

Chodzi o to, że dźwięk działa zgodnie z oczekiwaniami dla podłączonych słuchawek, więc moim naturalnym założeniem było, że słuchawki podłączone do AirPlay powinny działać w ten sam sposób. – Anastasia

+0

-1: Jest tak wiele powodów, dla których możesz tego chcieć. Mój klient chce użyć mojego oprogramowania do monitorowania dźwięku, aby przeprowadzić kontrolę odpowiedzi w pokoju, odtwarzając dźwięk przez odtwarzanie, a następnie monitorując zapisy z iPhone'a (w trybie pomiaru). Tak denerwujące, że jabłko całkowicie to blokuje. – Goz

0

Myślę, że powinieneś dodać poniższy kod: AVAudioSession. Mam nadzieję, że to działa.

NSError *setCategoryError = nil; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError]; 

if (setCategoryError) { 
    // Handle error 
} 
1

Z jakiego urządzenia AirPlay próbujesz korzystać? Czy ma mikrofon?

Jeśli nie, system iOS nie przedstawi go jako opcji podczas korzystania z kategorii PlayAndRecord, ponieważ urządzenie to nie może odtworzyć rekordów i. Pojawi się przy korzystaniu z kategorii Graj.

Jeśli urządzenie, z którego korzystasz, jest urządzeniem Bluetooth, ustawiono opcję AVAudioSessionCategoryOptionAllowBluetooth na YES?

Powiązane problemy