我正在研究申请。其中一个有趣的想法是同时从前置摄像头和脸部摄像头进行录制。大家都知道这是否可行?
谢谢:)
编辑: 我的意思是说前后摄像头。我想一次从两个摄像机录制到两个独立的流。我希望我更清楚一点。
答案 0 :(得分:13)
这是API允许的。我在运行最新iOS 4.2.1的iPhone 4上尝试了三种方法。
首先,我尝试使用单个捕获会话,将两个视频设备作为输入连接。附加第二个设备会产生异常:
因未捕获而终止应用 例外 'NSInvalidArgumentException',原因: ' * 多个音频/视频 AVCaptureInputs目前不是 '支撑。
其次,我尝试设置两个不同的会话,每个会话只有一个摄像头并同时启动它们。这导致第一个会话报告帧大约一秒钟,但是一旦第二个会话开始自己意志的第一站。您发送'startRunning'的顺序决定了哪个会话最终设法强制推出另一个会话。
最后,我尝试了一种简单的乒乓方法。所以我创建了两个会话,从第一个开始,一报告帧,停止并开始第二个。然后停止第二个并无限制地开始第一个。遗憾的是,请求会话开始和接收第一帧之间的延迟让我每两秒钟大约有一帧。
当然,我的代码可能会出错,但我倾向于说它在当前的硬件或操作系统上是不可能的。我将挂钩AVCaptureSession通知,看看我是否有明确的理由为何停止并更新此帖子。
添加:我的程序只接收AVCaptureSessionDidStartRunningNotification通知,每个捕获会话一个。停止的那个不报告错误,中断或其他停止。我也无法找到我的代码的问题,例如对象或调度队列重用,这可能会导致这个问题。
答案 1 :(得分:5)
似乎可以使用AVFoundation API从多个视频输入进行录制。根据{{3}},可以在AVCaptureSession中使用多个AVCaptureDevice输入。在iPhone 4中,这意味着会话可以同时拥有两个摄像头的AVCaptureDevices。在实践中,它可能不可行。我没有尝试过,所以我无法确定。
我认为标准UIImagePickerController不能同时用于记录两者。