我目前正在研究一个应用程序。其中一个有趣的想法是同时从前置摄像头和后置摄像头进行录制。你们中有人知道这是否可行吗?
谢谢 :)
编辑: 我的意思是前置和后置摄像头。我想同时从两个摄像头录制到两个独立的流中。希望我说得更清楚了。
这是API支持的功能。我在运行最新的iOS 4.2.1的iPhone 4上尝试了三种方法。
首先,我尝试使用一个捕获会话同时连接两个视频设备作为输入。连接第二个设备会引发异常:
终止应用程序,原因是未捕获的异常 'NSInvalidArgumentException',原因是:*不支持多个音频/视频AVCaptureInputs。
其次,我尝试设置两个不同的会话,每个会话只有一个相机,并同时启动它们。这导致第一个会话报告大约一秒钟的帧,但是一旦第二个会话开始,第一个会话就自动停止。您发送“startRunning”的顺序决定了哪个会话最终能够强制另一个退出。
最后,我尝试了简单的乒乓球方法。因此,我创建了两个会话,启动第一个会话,只要它报告一帧,就停止它并启动第二个会话。然后无限循环停止第二个会话并启动第一个。可惜请求会话开始和收到第一帧之间的延迟使我每两秒钟只有一帧。
当然,我的代码可能出错,但我倾向于认为在当前的硬件或操作系统上不可能。我将钩住AVCaptureSession通知,看看是否会给出明确的原因,为什么一个会话停止,并更新此帖子。
补充:我的程序仅接收AVCaptureSessionDidStartRunningNotification通知,每个捕获会话都有一个。停止的那个没有报告错误、中断或其他停止。我也无法找到我的代码中的问题,例如可以想象会导致此问题的对象或调度队列重用。