屏幕连接/断开通知是否适用于iOS 5?

时间:2011-10-26 21:03:21

标签: ios airplay uiscreen

使用iOS 5,是否有人仍在使用屏幕连接/断开连接通知,无论您是否检查镜像?我似乎没有收到任何通知,除非我将视频输出电缆插入我的设备,而不是使用AirPlay。

我的应用程序中有一个AirPlay按钮,由MPVolumeView提供。我可以点击它并选择Apple TV。 AirPlay按钮变为蓝色。我没有得到任何通知。

我可以进入“正在播放”屏幕(双击并翻页到一端),然后选择Apple TV。当AirPlay图标变为蓝色时,我得到确认。我的应用程序没有得到确认(即使在返回之后)。

我可以进入“正在播放”屏幕(双击并翻页到一端),然后选择Apple TV并选择镜像。当AirPlay图标变为蓝色时,我得到确认。我的应用程序没有得到确认(即使在返回之后)。

我退出了我的应用,我离开了镜像。我重启我的应用程序。我有代码检查屏幕数量。我只看到一个。

我希望我做错了什么,但我想检查并确保其他人在使用AirPlay时收到通知。我记得在5.0测试期间测试了我的AirPlay兼容性,并没有遇到这些问题。

(Apple的ExternalDisplay示例表现方式相同。)

我用于通知注册的代码:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(screenDidConnect:)
                                             name:UIScreenDidConnectNotification
                                         object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(screenDidConnect:)
                                             name:UIScreenDidDisconnectNotification 
                                           object:nil];

通知代码应该调用:

- (void) screenDidConnect:(NSNotification *)notification {
    if ([[UIScreen screens] count] > 1) 
        [self myScreenInit:[notification object]];
    else {
         ...
    }

1 个答案:

答案 0 :(得分:4)

原来,从iOS 5.0开始,您只能收到通知,在以下情况下:

  • iPad 2或iPhone 4s 和
  • 您必须在设备的“正在播放”屏幕中打开镜像(点击主页按钮两次,转到最左侧的页面,点击AirPlay图标,选择AppleTV并打开镜像)。这看起来很奇怪,但这就是它的工作方式。只需选择没有镜像的AirPlay AppleTV,就可以将AppleTV用于AVPlayer框架内显示的内容。

使用HDMI线缆,更多设备可以使用UIScreen使用第二个屏幕。