【问题标题】:Can the iPhone4 record from both front and rear-facing camera at the same time?iPhone4可以同时从前置和后置摄像头录制吗?
【发布时间】:2011-04-24 14:30:24
【问题描述】:

我目前正在研究一个应用程序。出现的一个有趣的想法是同时从前置摄像头和 facetime 摄像头录制。有谁知道这是否可行?

谢谢:)

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

【问题讨论】:

  • 你是指前置后置摄像头还是前置摄像头和来人摄像头?
  • 抱歉...前后...即同时使用两个摄像头。
  • 我也对此感兴趣,请发布您发现的任何内容,我也会这样做!

标签: iphone ios camera facetime


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

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

由于未捕获而终止应用 例外 'NSInvalidArgumentException',原因: '* 多个音频/视频 目前没有 AVCaptureInputs 支持。'

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

最后,我尝试了一种简单的乒乓球方法。所以我创建了两个会话,启动第一个,一旦它报告一个帧,停止它并启动第二个。然后停止第二个并开始第一个,无穷无尽。遗憾的是,请求会话开始和接收第一帧之间的延迟让我每两秒就有大约一帧。

当然,我的代码可能会出错,但我倾向于说这在当前的硬件或操作系统上是不可能的。我将挂钩 AVCaptureSession 通知,看看我是否有明确的理由停止并更新这篇文章。

添加:我的程序仅接收来自每个捕获会话的 AVCaptureSessionDidStartRunningNotification 通知。停止的那个不会报告错误、中断或其他停止。我也找不到我的代码存在的问题,例如对象或调度队列重用,这可能会导致此问题。

【讨论】:

  • 你还有这段代码来测试iOS5、6或7吗? :)
猜你喜欢
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多