我正在尝试使用 Apple TV 进行播放。我发现当我只用avplayer播放视频而不镜像时,我仍然可以全屏播放。但是,屏幕数仅为 1(适用于 iPad)。
如果我做镜像,屏幕数是 2(一个是 iPad,一个是外接显示器)。我认为没有镜像,屏幕数也应该是两个。我对此感到困惑。我想了解更多关于airplay镜像与不镜像之间的区别
screens = [UIScreen screens]; //to count screen
区别很简单。
镜像将复制屏幕上的所有内容并将其显示在另一个屏幕上。这用于向一群人展示照片库或类似的事情。
如果镜像关闭,那么它将充当外部显示器。这用于 Real Racing 3 等游戏,您可以在电视或其他设备上玩游戏,并将您的 iPhone (iPad) 用作游戏的控制器。电视和 iPhone 的屏幕上会有不同的东西。
Fogmeister 的回答并不那么准确,感觉就像插话一样。
您可以轻松使用镜像并在 Apple-TV 屏幕上显示不同的内容。据我所知,这是目前 Apple 的任何公共 API 都支持的唯一方式。此处已在其他地方详细介绍了解决方案。
这个想法是劫持外部窗口,然后给它一个你控制的viewController(就像其他任何东西一样):
if([[UIScreen screens] count] > 1){
UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];
_secondWindow = [[UIWindow alloc] initWithFrame:secondScreen.bounds];
self.secondWindow.screen = secondScreen;
_externalViewController = [[YourExternalViewControllerClass alloc] init];
self.secondWindow.rootViewController = self.externalViewController;
self.secondWindow.hidden = NO;
}
在上面的例子中,_secondWindow
和_externalViewController
实例是设置设备视图的 viewController 的属性。