2010-10-12 188 views
12

我正在为应用程序进行研究。其中一个有趣的想法是同时从前置摄像头和面对照相机录制。你们谁都知道这是否可行?iPhone4可以同时从前置摄像头和后置摄像头录制吗?

谢谢:)

编辑: 我的意思是说前方和后方摄像头。我想从两台摄像机一次录制到两个独立的流。我希望我更清楚一点。

+3

你指的是前,后置摄像头或前置摄像头和进入者的相机? – TofuBeer 2010-10-13 01:49:06

+0

道歉...正面和背面...即两个相机一次。 – dineth 2010-10-13 02:50:57

+0

我对此感兴趣,请发表任何您发现的东西,我也会这么做! – 2011-01-02 02:00:18

回答

13

这是API允许的。我在运行最新的iOS 4.2.1的iPhone 4上尝试了三种方法。

首先,我尝试使用一个捕获会话与两个视频设备作为输入附加。装上第二装置产生的异常:

终止应用程序由于未捕获的异常 “NSInvalidArgumentException”的,理由是: “*多种音频/视频 AVCaptureInputs目前不支持 。”

其次,我尝试设置两个不同的会话,每个会话只有一个摄像头,并在同一时间启动它们。这导致第一次会议报告帧大约一秒钟,但第二次开始第一次停止自己的意志。您发送'startRunning'的顺序决定哪个会话最终管理强制另一个会话。

最后,我尝试了一个简单的乒乓方法。因此,我创建了两个会话,从第一个开始,一旦报告了一个帧,停止它并开始第二个。然后停下来,开始第一个,无限的。令人遗憾的是,请求会话开始和接收第一帧之间的延迟使我每两秒钟有大约一帧。

当然有可能我的代码中犯了错误,但我倾向于说,这是不可能的当前硬件或操作系统。我将钩住AVCaptureSession通知,看看我是否有明确的理由说明为什么停止并更新这篇文章。

此外:我的程序只接收每个捕获会话中的一个AVCaptureSessionDidStartRunningNotification通知。停止报告不报告错误,中断或其他停工。我也无法找到我的代码问题,例如对象或调度队列重用,这可能会导致此问题。

+2

您是否还有这个代码来测试iOS5 ,6或7? :) – 2013-07-10 22:59:28

5

似乎可以使用AVFoundation API从多个视频输入进行录制。根据documentation,可以在AVCaptureSession中使用多个AVCaptureDevice输入。在iPhone 4中,这意味着一个会话可以同时拥有两个摄像头的AVCaptureDevices。实际上,这可能是不可行的。我没有尝试过,所以我无法确定。

我不认为标准的UIImagePickerController可以同时用于记录两者。

+0

是的,你肯定会使用CoreMedia。一个好的起点.. http:// stackoverflow。com/questions/10199021/ios-capture-image-from-front-facing-camera and http://adcdownload.apple.com//videos/wwdc_2010__sd/session_409__using_the_camera_with_av_foundation.mov – Fattie 2014-02-26 12:06:54