Может ли iPhone4 производить запись с передней и задней камеры одновременно? - PullRequest
12 голосов
/ 13 октября 2010

Я сейчас ищу заявку.Одна из интересных идей, которая возникла, заключалась в одновременной записи с передней и передней камеры.Кто-нибудь из вас знает, возможно ли это?

Спасибо:)

РЕДАКТИРОВАТЬ: я имею в виду передние и задние камеры.Я хочу записывать с обеих камер сразу на два отдельных потока.Я надеюсь, что я немного яснее.

Ответы [ 2 ]

13 голосов
/ 01 марта 2011

Это то, что API допускает.Я попробовал три подхода на iPhone 4 с последней версией iOS, 4.2.1.

Во-первых, я попытался использовать один сеанс захвата с обоими видеоустройствами, подключенными в качестве входов.При подключении второго устройства возникает исключение:

Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* Несколько аудио / видео AVCaptureInputs в настоящее время не поддерживаются.»

Во-вторых, я попытался настроить две разные сессии, каждая с одной камерой, и запустить их одновременно.Это заставило первую сессию сообщать о кадрах в течение примерно секунды, но как только вторая запустила первые остановки по собственному желанию.Порядок, в котором вы отправляете startRunning, определяет, какой из сеансов в конечном итоге удастся вытеснить другой.

Наконец, я попробовал простой подход к пинг-понгу.Поэтому я создаю две сессии, запускаю первую и, как только она сообщает о кадре, прекращаю ее и запускаю вторую.Затем остановите второе и начните первое до бесконечности.К сожалению, задержка между запросом начала сеанса и получением первого кадра оставила мне примерно один кадр каждые две секунды.

Конечно, возможно, я допустил ошибку в своем коде, но я склонен сказать, что это невозможнона текущем оборудовании или ОС.Я перехватываю уведомления AVCaptureSession, чтобы увидеть, если мне дана явная причина, почему кто-то останавливается и обновляет этот пост.

Дополнения: моя программа получает только уведомления AVCaptureSessionDidStartRunningNotification, по одному от каждого сеанса захвата.Тот, который останавливается, не сообщает об ошибке, прерывании или другой остановке.Я также не могу найти проблему с моим кодом, такую ​​как повторное использование объекта или очереди отправки, которая могла бы вызвать эту проблему.

5 голосов
/ 01 марта 2011

По-видимому, можно выполнять запись с нескольких видеовходов с помощью API-интерфейса AVFoundation. Согласно документации , в AVCaptureSession можно использовать несколько входов AVCaptureDevice. В iPhone 4 это означает, что сеанс может иметь оба устройства AVCaptureDevices для обеих камер. На практике это может быть неосуществимо. Я не пробовал, поэтому не могу с уверенностью сказать.

Я не думаю, что стандартный UIImagePickerController можно использовать для записи с обоих одновременно.

...