3

无论您是否检查镜像,是否还有人使用 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 {
         ...
    }
4

1 回答 1

4

事实证明,从 iOS 5.0 开始,您只会在以下情况下收到通知:

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

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

于 2011-10-29T09:10:09.253 回答