获取AirPlay镜像屏幕的

时间:2015-12-08 20:34:34

标签: ios external uiwindow airplay mirroring

我正在尝试使用AirPlay镜像时获取外部屏幕(例如电视)的UIWindow对象。棘手的部分:它确实是AirPlay 镜像,而不是单独的显示,因为我们使用的是AirPlay的内置功能,而不是设置新的UIWindow对象并将其分配给新屏幕。我的老板希望应用程序能够以各种方式镜像设备,但只能通过将子视图(教程覆盖)添加到辅助屏幕的UIWindow来将其添加到外部窗口。

我尝试过的事情:

  • 我可以轻松地从UIScreenDidConnectNotification[UIScreen screens]获取辅助UIScreen对象,但是as far as I know UIScreens没有显示对UIWindow的引用。
  • 由于我们只是使用AirPlay自动生成的显示器,因此我无法在创建过程中保存对UIWindow的引用。
  • 我检查了[[UIApplication sharedApplication] windows],但它似乎没有包含与外部显示器关联的UIWindow。 (至少,window.screen个对象与电视首次连接时从UIScreenDidConnectNotification获得的UIScreen对象都没有匹配,而当电视连接时,[[UIScreen screens] count]上升了1,计数窗户仍然是静止的。)

有没有办法使用AirPlay镜像访问辅助屏幕的窗口?或者,有没有办法有效地实现应用程序范围的设备镜像,允许更好地控制与电视关联的UIWindow对象?

1 个答案:

答案 0 :(得分:2)

Apple的这份文件: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/UsingExternalDisplay/UsingExternalDisplay.html

声明:

  

要在显示唯一内容后重新启用镜像,只需删除即可   您从相应的屏幕对象创建的窗口。

这意味着当镜像处于活动状态时,没有链接到它的窗口,镜像只使用主屏幕的窗口。

只有一个窗口,我不认为可以在此模式下显示不同的内容。

如果您想要显示不同的内容,您必须创建一个新窗口并将其分配到该屏幕。