iPad VGA连接器 - 镜像屏幕在自己的应用程序?

时间:2010-04-18 12:24:26

标签: ipad vga

是否可以通过VGA连接器镜像屏幕?找不到任何相关信息。

3 个答案:

答案 0 :(得分:35)

我一直在找你。上周末我写了一个小的UIApplication类别来添加镜像支持。我发布了Google Code上的代码。

http://code.google.com/p/iphoneos-screen-mirroring/

要使用它,您只需在应用程序委托的应用程序中完成设置即可完成设置。像这样:

[[UIApplication sharedApplication] setupScreenMirroringOfMainWindow:mainWindow framesPerSecond:20];

我上周末只有一次机会在带有Apple AV输出线的大屏幕电视上试用它。性能不是很好,因此我不建议使用高于30 fps的帧速率......

答案 1 :(得分:5)

我认为值得补充的是, QuartzCore 框架是强制性的,否则在编译时会有4个错误。

Undefined symbols:
  "_CATransform3DMakeRotation", referenced from:
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
  "_kCAGravityResizeAspect", referenced from:
      _kCAGravityResizeAspect$non_lazy_ptr in UIApplication+ScreenMirroring.o
     (maybe you meant: _kCAGravityResizeAspect$non_lazy_ptr)
  "_OBJC_CLASS_$_CADisplayLink", referenced from:
      objc-class-ref-to-CADisplayLink in UIApplication+ScreenMirroring.o
  "_CATransform3DIdentity", referenced from:
      _CATransform3DIdentity$non_lazy_ptr in UIApplication+ScreenMirroring.o
     (maybe you meant: _CATransform3DIdentity$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status

答案 2 :(得分:3)

每个UIWindow对象(基本上是顶级视图)都分配了一个屏幕(UIScreen),您当然可以设置所需的屏幕。因此,将主要内容移动到第二个屏幕很容易,但镜像很难。 (如果你不想在下一段开始讲一讲为什么它会丑陋的话)我相信这是苹果的意图,因为两次绘制相同的东西,一个分辨率更高的一个,以及之前观看界面的体验进入任何演示模式相比,在视频播放之前没有看到任何内容,主题演示已经开始,等等。这显然是你想要根据具体情况考虑,但镜像是一个坏主意。

UIWindow继承自UIView,所以虽然我没有太多关于这个问题的个人经验,你仍然可以让它绘制到某种位图上下文,然后使用两个不同的UIWindows它们上的图像视图将实际像素推到各自的屏幕上。如果您只想镜像一个特定的自定义视图(并且不包括它的子视图),这会非常容易,因为您可以在设备屏幕上拥有该视图(捕获任何输入),然后以您拥有方法的方式进行设计调用它在任何上下文中绘制它(一些drawRects可能正常工作)和来自另一个屏幕上超级特殊的真棒自定义子视图的调用,这将实现drawRect只是在实际视图上调用方法。 / p>

希望这会有所帮助,抱歉我跑了一下:(