通过电视播放iPhone电影

通过电视播放iPhone电影,iphone,mpmovieplayercontroller,multiple-monitors,Iphone,Mpmovieplayercontroller,Multiple Monitors,有没有办法模拟视频应用程序,使我们仍然在设备(iPad/iPhone)上保持控制,但通过电缆将视频发送到电视?我研究了屏幕镜像,但是它对于视频来说太慢了,而且不管怎样,屏幕镜像使用的UIGetScreenImage()已经不再被苹果所允许 视频应用程序似乎正是我所需要的,但我看不到任何简单的事情来实现这一点 更新(10/15/10):显然,通过UIWebView播放的电影有电视输出支持,而MPMoviePlayerController电影没有 但是,有一个警告:这不适用于更新到最新iOS的旧设

有没有办法模拟视频应用程序,使我们仍然在设备(iPad/iPhone)上保持控制,但通过电缆将视频发送到电视?我研究了屏幕镜像,但是它对于视频来说太慢了,而且不管怎样,屏幕镜像使用的UIGetScreenImage()已经不再被苹果所允许

视频应用程序似乎正是我所需要的,但我看不到任何简单的事情来实现这一点

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


但是,有一个警告:这不适用于更新到最新iOS的旧设备。也就是说,ipodtouch、iphone3g和3GS不起作用,而iphone4和ipad起作用。希望我们能用更多的东西来填补compability方面的空白,因为我知道这是可能的。AirVideo和StreamToMe等应用程序目前支持此功能。

我不确定是否有官方的方法来实现此功能。但对于您的示例,AirVideo使用方法Swizzling(签出:)来覆盖电影播放器中的检查,并像视频应用程序一样执行操作

我猜有些人在SDK上进行了反向工程,你可以找到检查的地方,然后用你的自定义方法来关闭该方法

在3.2及更高版本(对链接到的站点进行后期更新)中,UIScreen有一个类方法“screens”,如果没有外部显示可用,它将返回一个对象数组(主屏幕),如果连接了电视线,则返回两个屏幕(主屏幕和外部屏幕)。这项任务应该很简单,只要将要在外部屏幕上显示的视图定位在其框架内,将要在设备上显示的控件定位在另一个框架内即可

你试过了吗


编辑一条附加注释:同样从3.2开始,明确允许创建MPMovieController,然后从中获取视图,将其视为普通UIView,而不是完整的“呈现”。因此,这就是如何获得电影视图,您可以根据自己的意愿进行定位。

我想您只需创建一个新的UI窗口,将其添加到相关的UI屏幕,并将电影播放器的
视图粘贴在其中,但我可能错了……我想这是可以做到的,但问题是我仍然需要一些方法来控制电影播放器。最糟糕的是,我需要将电影播放器视图放在该屏幕上,但设备上有一个额外的控件副本供用户使用。请将其中一个答案作为“已接受答案”接受,因为这样做有助于Stackoverflow社区,也会增加你自己的评分。@Linuxmint:我只接受独立的完整答案,而且我已经验证了自己。这些都不适用于已经给出的答案。我得到的最接近的答案是丹尼斯的答案,但我已经为此给了他一大笔赏金。而且,很抱歉给你加上资历,但我应该指出你和我在站点上的大量代表/时间差异。很抱歉,我只是想帮忙。在旧设备上未正确检测到UI屏幕,这意味着无法使用此方法。我强烈建议你在这种情况下提交错误报告。我对苹果的bug报告过程只有积极的体验,我已经有了。他们特别指出,较旧的设备缺乏检测更多UI屏幕的硬件(尽管它们显然具有检测电视输出的能力,我认为这不一定是UI屏幕)。我想知道您是从哪里发现AirVideo使用方法滑动的?您可以用文本编辑器检查下载的应用程序,(或者最好是otool)在那里你可以看到方法名称。通过一些反向工程,我想你可以找到它们是如何进行旋转的。