예, 실제로 방법이 있습니다.
어딘가에 MPVolumeView
의 인스턴스를 만듭니다. 일부 인스턴스 변수에서 계속 유지하십시오. 하위 뷰로 추가 할 필요는 없으며 단순히 존재해야합니다.
그런 다음 지금처럼 MPVolumeViewWirelessRouteActiveDidChangeNotification
에 가입 :
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleWirelessRouteActiveDidChangeNotification:)
name:MPVolumeViewWirelessRouteActiveDidChangeNotification
object:nil];
는 외부 디스플레이의 상태에 대해 알고 이러한 방법을 추가
- (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;
}
은 또한 당신이
UIScreenDidConnectNotification
및
UIScreenDidDisconnectNotification
알림을 확인할 수 있습니다. AirPlay Mirroring이 활성화되어 있거나 AirPlay 재생 (미러링 아님)이 활성화되어 있거나 미러링없이 외부 화면을 사용하고 있다면 AirPlay에 연결되어 있는지 확인할 수 있습니다.
왜 알고 싶습니까? "하드 와이어드"TV 출력은 실제로 AirPlay-over-a-wire입니다. 정확히 무엇을 찾으려고합니까? –
예 본질적으로 유선과 동일한 프로토콜이라는 것을 알고 있지만, 일부 고객은 무선 유선 연결을 통해 Airplay 미러링 만 허용하도록 제한하려는 보안 민감한 앱을 개발합니다. Wi-Fi 및 Wi-Fi를 통한 Airpay 방송의 공개 불안으로 인해 권한이없는 당사자들이 그것을 볼 수있는 가능성. – Herwr