我试图在使用AirPlay镜像时获取外部屏幕(如电视机)的UIWindow对象。棘手的部分:它真的是AirPlay 镜像,而不是一个单独的显示,因为我们正在使用AirPlay的内置功能,而不是设置一个新的UIWindow对象并将其分配给新屏幕。我的老板希望应用以各种方式镜像设备,但要能够将子视图(教程叠加层)专门添加到外部窗口,方法是将它们添加到辅助屏幕的UIWindow。获取AirPlay镜像屏幕的UIWindow
我试了一下:
- 我可以得到二次UIScreen对象容易,无论是从
UIScreenDidConnectNotification
或[UIScreen screens]
,但as far as I know UIScreens没有到一个UIWindow正在显示的引用。 - 由于我们仅使用AirPlay自动生成的显示,因此无法在创建期间保存对UIWindow的引用。
- 我检查了
[[UIApplication sharedApplication] windows]
,它似乎没有包含与外部显示器相关联的UIWindow。 (至少,没有window.screen
对象的匹配UIScreen对象,我从UIScreenDidConnectNotification
获得当电视首次连接,并同时[[UIScreen screens] count]
1上升时,一台电视机连接,窗口的数量保持不变。)
有没有办法使用AirPlay镜像访问第二屏幕的窗口?或者,是否有办法有效实现设备的应用程序范围镜像,从而更好地控制与电视相关联的UIWindow对象?
是不是镜像的原理,它显示内部屏幕相同的东西,所以它是同一个窗口? Apple文档说,默认情况下,外部屏幕会镜像内部屏幕,并且通过在该屏幕上创建窗口来停止镜像,并通过移除窗口来重新启用它。所以,当镜像时,外部屏幕没有任何窗口。 – jcaron