2012-10-30 11 views
12

ich folgendes Problem bin Begegnung: AirPlay nicht verfügbar ist, wenn ich an die Audio-Sitzung in meiner Anwendung Play-and-Rekord Kategorie eingestellt:AVAudioSessionCategoryPlayAndRecord macht AirPlay unsichtbar

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

Dieser Aufruf macht die AirPlay und leitet verschwinden das Audio zum Lautsprecher sofort.

Das Problem kann z.B. für das Beispielprojekt avTouch aus der Xcode-Dokumentation durch Ersetzen der Kategorie durch AVAudioSessionCategoryPlayAndRecord: Im ursprünglichen Beispiel ist der AirPlay-Picker sichtbar und ermöglicht das Ändern der Ausgabequelle, während in der Kategorie AVAudioSessionCategoryPlayAndRecord der Picker verschwindet.

Gibt es einen richtigen Weg, um in die Kategorie AVAudioSessionCategoryPlayAndRecord zu wechseln, damit das AirPlay noch verfügbar ist?

(Eine Frage wie diese hat already asked, aber nicht bekommen keine Antwort.)

+0

Wahrscheinlich müssen Sie möglicherweise mit einigen privaten APIs versuchen. Überprüfen Sie, ob dies trotzdem hilft. http://spin.atomicobject.com/2012/04/23/ios-mirroring-and-programmatic-airplay-selection/ Sie erwähnen einige private apis. – iDev

+1

@ACB: Danke! Ich habe mir den erwähnten Artikel angesehen, aber wie du sagst, verwenden sie private APIs, die ich nicht verwenden kann, da das Projekt, für das ich arbeite, über den App Store vertrieben wird. – Anastasia

+0

@Anastasia Hast du eine Lösung? Ich habe das gleiche Problem mit dir.Thanks – Jacky

Antwort

-1

Nun, AirPlay und die PlayAndRecord Kategorie sind nur unvereinbar. Das habe ich von den Apple Foren gelernt.

Warum benötigen Sie den Audioeingang am Gerät, wenn die Audioausgabe an einem anderen Ort stattfindet?

+1

Die Anwendung gibt einen Videostream wieder (möglicherweise wird der Sound über AirPlay ausgegeben) und zeichnet diesen Stream gleichzeitig auf. Macht Sinn? – Anastasia

+0

Der Punkt ist, das Audio funktioniert erwartungsgemäß für eingesteckte Kopfhörer, also war es meine natürliche Annahme, dass AirPlay-verbundene Kopfhörer auf die gleiche Weise funktionieren sollten. – Anastasia

+0

-1: Es gibt so viele Gründe, warum Sie es wollen könnten. Ein Kunde von mir möchte meine Audioüberwachungssoftware verwenden, um eine Raumantwortüberprüfung durchzuführen, indem Audio über Airplay abgespielt wird und dann überwacht wird, was das iPhone aufnimmt (im Messmodus). So nervig, dass Apple das komplett blockiert. – Goz

0

Ich denke, dass Sie den Code unten AVAudioSession hinzufügen sollten. Ich hoffe, es funktioniert.

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

if (setCategoryError) { 
    // Handle error 
} 
1

Welches AirPlay-Gerät möchten Sie verwenden? Hat es ein Mikrofon?

Wenn nicht, zeigt iOS diese Option nicht an, wenn die PlayAndRecord-Kategorie verwendet wird, da das Gerät und nicht aufnehmen kann. Es würde jedoch angezeigt, wenn Sie die Kategorie Play verwenden.

Wenn das Gerät, das Sie verwenden, ein Bluetooth-Gerät ist, müssen Sie AVAudioSessionCategoryOptionAllowBluetooth auf YES setzen?