刚刚发现iPad的视频输出不是系统级功能,但需要明确内置到每个应用程序中。 是否有人对此有任何经验,谁能指出我的示例代码? 次要问题是:为什么Apple不会将此作为系统功能。这是一个硬件问题,我应该在将其构建到我的应用程序时注意到它吗?
答案 0 :(得分:1)
iPad可以通过一组支持的电缆连接到外部显示器。连接后,应用程序可以使用关联的屏幕来显示内容。有关屏幕的信息,包括其支持的分辨率,可通过UIKit框架的界面访问。您还可以使用该框架将应用程序的窗口与一个或另一个屏幕相关联。
UIScreen类支持检索所有可用屏幕(包括设备的主屏幕)的屏幕对象。每个屏幕对象都包含有关屏幕本身属性的信息,包括正确考虑屏幕大小和像素长宽比的尺寸。
UIScreenMode类提供有关屏幕的一个特定大小和像素长宽比设置的信息。
Windows(由UIWindow类表示)现在可以分配到特定屏幕。
答案 1 :(得分:0)
对不起,我似乎没有必要对其他帖子发表评论。所以,这里有一些代码可能对探索新的外部显示支持很有用:
NSUInteger numScreens = [[UIScreen screens] count];
DLog(@"[[UIScreen screens] count] = %d", numScreens);
NSUInteger j = 0;
for (UIScreen *screen in [UIScreen screens])
{
DLog(@" screen %d", j++);
NSArray *modes = [screen availableModes];
for (int i = 0; i < [modes count]; ++i)
{
UIScreenMode *mode = [modes objectAtIndex:i];
DLog(@" modes[%d] : size = (%f, %f) ; aspect ration = %f", i, mode.size.width, mode.size.height, mode.pixelAspectRatio);
}
}
请注意,您仍然需要某种视频线。我用Apple的Component AV Cable进行了测试。虽然很笨拙,但它很适合调试,因为它有USB和30针连接器,因此您可以连接到iPhone / iPad 和在调试器中运行您的应用程序。
问题是你仍然需要做一些工作来将显示器的部分镜像到外部屏幕,同时保持对iPhone / iPad的控制。你可能想看一下这个link text的灵感。
答案 2 :(得分:0)
TVOutManager类处理整个过程。
答案 3 :(得分:0)
现在讨论的相关性较低,因为在iOS的当前版本中,系统级现在支持显示镜像。