我该如何在iOS 8和Yosemite之间建立镜像会话?

3
在OS X Yosemite系统上,可以将iOS 8设备的屏幕镜像到OS X机器并保存为媒体文件。可以使用QuickTime Player手动完成此操作,但我想以编程方式完成相同的操作。
通过阅读文档,应该将iOS 8设备公开为网络摄像机。
在我的Mac上调用[AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]返回一个没有元素的NSArray
如何设置使用iOS 8和Yosemite的镜像会话?如何检测用于镜像会话的采集设备?

你找到怎么做了吗? - Mickaël Rémond
1个回答

18

引用来自于第28页的WWDC 2014会议#508“相机捕捉:手动控制”的PDF文稿:

iOS设备被呈现为CoreMedia IO“DAL”插件

你必须选择加入才能在你的OS X应用程序中查看iOS屏幕设备

CMIOObjectPropertyAddress prop =
                           { kCMIOHardwarePropertyAllowScreenCaptureDevices,
                             kCMIOObjectPropertyScopeGlobal,
                             kCMIOObjectPropertyElementMaster };
UInt32 allow = 1;
CMIOObjectSetPropertyData( kCMIOObjectSystemObject,
                           &prop, 0, NULL,
                           sizeof(allow), &allow );
此外,请参阅我的博客,获取CoreMediaIO捕获示例,以直接拦截从设备发送的原始压缩负载。 -> 此外,查看我的博客,获取CoreMediaIO捕获示例,以直接拦截从设备发送的原始压缩负载。

1
我无法使其正常工作。只有当我启动Quicktime并开始新的电影录制时,[AVCaptureDevice devices]才能检测到iPhone设备。为什么会发生这种情况? - jesse
4
在安装上述内容之前,设备可能需要一些时间才能变为“已挂载”/可用状态。在设置时,请先安装适当的NSNotification以在添加设备时收到通知。重要提示:从OS-X 10.10开始,iOS镜像存在内存泄漏(操作系统错误),长时间运行的捕获会导致巨大的内存泄漏。 - NadavRub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接