2010-10-13 298 views
3

是否有任何方法模拟视频应用程序,使我们仍然保持对设备(iPad/iPhone)的控制,但通过电缆将视频发送到电视?我研究了屏幕镜像,但对于视频来说速度太慢,不管如何,苹果不再允许屏幕镜像使用的UIGetScreenImage()。通过电视播放iPhone电影

视频应用程序似乎有我需要的,但我没有看到任何简单的事情发生。

更新(10/15/10):显然,通过UIWebView播放的电影具有电视输出支持,而MPMoviePlayerController电影则不支持。

http://rebelalfons.posterous.com/iphone-os-support-for-tv-out

然而,有一个警告:这不起作用在更新到最新的iOS旧设备。也就是说,iPod touch,iPhone 3G & 3GS不工作,而iPhone 4和iPad做。希望有更多的东西可以用来填补可执行性方面的空白,因为我知道它是可能的。 AirVideo和StreamToMe等应用目前支持此功能。

+0

我想你只是创建一个新的UIWindow并将其添加到相关的UIScreen并将电影播放器​​的“视图”粘贴在那里,但我可能是错的... – 2010-10-13 21:40:00

+0

我想这可以完成,但问题是我仍然需要一些方法来控制电影播放器​​。最糟糕的是,我需要在该屏幕上放置电影播放器​​视图,但在设备上有额外的控件副本供用户使用。 – 2010-10-13 22:11:52

+0

请接受其中一个答案作为“接受的答案”,因为它可以帮助您解决Stackoverflow社区问题,并且还会增加您的评分。 – Linuxmint 2010-12-08 20:50:26

回答

1

我不确定是否有官方的方式来做到这一点。至于你的例子,A​​irVideo使用方法交叉混合(退房:http://www.cocoadev.com/index.pl?MethodSwizzling)覆盖在电影播放器​​检查,像个视频应用

我想一些与SDK一些逆向工程,你可以找到在检查制作出来,并用你自定义的方法调整该方法。

+0

我想知道你在哪里发现AirVideo使用方法swizzling? – 2010-10-25 18:46:26

+0

您可以使用文本编辑器(或最好是otool)检查下载的应用程序,您可以在其中查看方法名称。通过一些逆向工程,我想你可以看看他们是如何做到的。 – 2010-10-25 18:52:40

1

在3.2及更高版本中(后期链接的网站),UIScreen有一个类方法,'屏幕'将返回一个对象的数组 - 主屏幕 - 如果没有外部显示器可用,或两个屏幕 - 主屏幕和外部屏幕 - 如果连接了电视线。这个任务应该像将要在外部屏幕上显示的视图放置在其框架内一样简单,并且将设备上的控件放置在其他屏幕中。

你试过吗?

编辑附加一个注释:也可以作为3.2,它是明确允许创建一个MPMovieController,然后抓住视图从它当作一个正常的UIView而不是做一个完整的“存在”。所以这就是你如何得到一个电影视图,你可以随心所欲地定位。

+0

旧设备上未正确检测到UIScreen,这意味着此方法无法使用。 – 2010-10-25 18:45:18

+0

我强烈建议你在这种情况下提交一个错误报告。我对苹果的错误报告过程只有积极的经验。 – Tommy 2010-10-25 20:27:50

+0

我已经有了。他们特别指出,旧设备缺乏检测更多UIScreen的硬件(尽管它们显然有能力检测电视输出,我认为这不一定是UIScreen)。 – 2010-10-27 20:59:28