iPhone4能同时从前置摄像头和后置摄像头录制吗?

12

我目前正在研究一个应用程序。其中一个有趣的想法是同时从前置摄像头和后置摄像头进行录制。你们中有人知道这是否可行吗?

谢谢 :)

编辑: 我的意思是前置和后置摄像头。我想同时从两个摄像头录制到两个独立的流中。希望我说得更清楚了。


3
你是指前置和后置摄像头,还是前置摄像头和对方的摄像头? - TofuBeer
抱歉...前后...即同时使用前置和后置摄像头。 - dineth
我也很感兴趣,请发布任何你发现的东西,我也会这样做! - Andy Milburn
2个回答

13

这是API支持的功能。我在运行最新的iOS 4.2.1的iPhone 4上尝试了三种方法。

首先,我尝试使用一个捕获会话同时连接两个视频设备作为输入。连接第二个设备会引发异常:

终止应用程序,原因是未捕获的异常 'NSInvalidArgumentException',原因是:*不支持多个音频/视频AVCaptureInputs。

其次,我尝试设置两个不同的会话,每个会话只有一个相机,并同时启动它们。这导致第一个会话报告大约一秒钟的帧,但是一旦第二个会话开始,第一个会话就自动停止。您发送“startRunning”的顺序决定了哪个会话最终能够强制另一个退出。

最后,我尝试了简单的乒乓球方法。因此,我创建了两个会话,启动第一个会话,只要它报告一帧,就停止它并启动第二个会话。然后无限循环停止第二个会话并启动第一个。可惜请求会话开始和收到第一帧之间的延迟使我每两秒钟只有一帧。

当然,我的代码可能出错,但我倾向于认为在当前的硬件或操作系统上不可能。我将钩住AVCaptureSession通知,看看是否会给出明确的原因,为什么一个会话停止,并更新此帖子。

补充:我的程序仅接收AVCaptureSessionDidStartRunningNotification通知,每个捕获会话都有一个。停止的那个没有报告错误、中断或其他停止。我也无法找到我的代码中的问题,例如可以想象会导致此问题的对象或调度队列重用。


2
你还有这段代码用来测试iOS5、6或7吗? :) - Kaolin Fire

5
通过AVFoundation API 可以使用多个视频输入进行录制。根据文档,AVCaptureSession可以使用多个AVCaptureDevice inputs。在iPhone 4中,这意味着会话可以同时拥有前后两个摄像头的AVCaptureDevices。但在实际应用中,这可能并不可行。我没有尝试过,无法确定。
我认为标准的UIImagePickerController不能同时从两个输入源录制。

是的,你几乎肯定要使用CoreMedia。一个很好的起点是。。https://dev59.com/vWkw5IYBdhLWcg3wBV3j和http://adcdownload.apple.com//videos/wwdc_2010__sd/session_409__using_the_camera_with_av_foundation.mov。 - Fattie

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