我目前正在研究应用程序。出现的一个有趣的想法是同时从前置摄像头和 facetime 摄像头进行录制。你们知道这是否可行吗?
谢谢:)
编辑: 我的意思是说前置和后置摄像头。我想同时从两台摄像机录制到两个独立的流中。我希望我更清楚一点。
最佳答案
这是 API 允许的事情。我在运行最新 iOS 4.2.1 的 iPhone 4 上尝试了三种方法。
首先,我尝试使用单个捕获 session ,将两个视频设备连接为输入。附加第二个设备会产生异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* Multiple audio/video AVCaptureInputs are not currently supported.'
其次,我尝试设置两个不同的 session ,每个 session 只有一个摄像头并同时启动它们。这导致第一个 session 报告帧大约一秒钟,但是一旦第二个 session 开始,它就会自动停止。您发送“startRunning”的顺序决定了哪个 session 最终设法迫使另一个退出。
最后,我尝试了一种简单的乒乓方法。所以我创建了两个 session ,开始第一个,一旦它报告一个帧,就停止它并开始第二个。然后停止第二个并开始第一个,无穷无尽。遗憾的是,请求 session 开始和接收第一帧之间的延迟让我每两秒大约有一帧。
当然,我的代码有可能出错,但我倾向于说这在当前的硬件或操作系统上是不可能的。我将 Hook AVCaptureSession 通知,看看我是否得到明确的停止原因并更新这篇文章。
添加:我的程序仅接收 AVCaptureSessionDidStartRunningNotification 通知,每个捕获 session 都有一个通知。停止的那个不会报告错误、中断或其他停止。我也无法找到我的代码中可能会导致此问题的问题,例如对象或调度队列重用。
关于iphone - iPhone4 可以同时从前置和后置摄像头录制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3919807/