Ja, es gibt tatsächlich einen Weg.
Erstellen Sie irgendwo in Ihrer App eine Instanz von MPVolumeView
. In einer Instanzvariable festhalten. Sie müssen es nicht als Subview zu etwas hinzufügen, es muss einfach existieren.
Dann abonnieren Sie den MPVolumeViewWirelessRouteActiveDidChangeNotification
wie so:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleWirelessRouteActiveDidChangeNotification:)
name:MPVolumeViewWirelessRouteActiveDidChangeNotification
object:nil];
diese Methoden hinzufügen über den Zustand des externen Displays, um herauszufinden:
- (BOOL)isAirPlayConnected
{
return _volumeView.isWirelessRouteActive;
}
- (BOOL)isAirPlayMirroringActive
{
if ([self isAirPlayConnected]) {
NSArray *screens = [UIScreen screens];
if ([screens count] > 1) {
return [screens[1] mirroredScreen] == [UIScreen mainScreen];
}
}
return NO;
}
- (BOOL)isAirPlayPlaybackActive
{
return [self isAirPlayConnected] && ![self isAirPlayMirroringActive];
}
- (BOOL)isExternalPlaybackActive
{
if ([self isAirPlayPlaybackActive]) {
return YES;
} else {
NSArray *screens = [UIScreen screens];
if ([screens count] > 1) {
return [screens[1] mirroredScreen] != [UIScreen mainScreen];
}
}
return NO;
}
Zusätzlich können Sie für die Meldungen UIScreenDidConnectNotification
und UIScreenDidDisconnectNotification
überprüfen. Mit all dem können Sie feststellen, ob Sie mit AirPlay verbunden sind, ob AirPlay Mirroring aktiv ist, ob AirPlay-Wiedergabe (nicht Mirroring) aktiv ist oder ob Sie einen externen Bildschirm ohne Spiegelung verwenden.
Warum möchten Sie wissen? Der "festverdrahtete" TV-Ausgang ist sowieso AirPlay-over-a-wire. Was genau willst du herausfinden? –
Ja, ich weiß, es ist im Wesentlichen das gleiche Protokoll über Kabel, aber wir entwickeln eine sicherheitssensitive App, die einige Clients beschränken möchten, um Airplay Spiegelung nur über eine festverdrahtete Verbindung zu ermöglichen - Aufgrund der gut publizierten Unsicherheit der Ausstrahlung AirPay Displays über WLAN und das Potenzial für nicht autorisierte Parteien, es zu sehen. – Herwr