Это то, что API допускает.Я попробовал три подхода на iPhone 4 с последней версией iOS, 4.2.1.
Во-первых, я попытался использовать один сеанс захвата с обоими видеоустройствами, подключенными в качестве входов.При подключении второго устройства возникает исключение:
Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* Несколько аудио / видео AVCaptureInputs в настоящее время не поддерживаются.»
Во-вторых, я попытался настроить две разные сессии, каждая с одной камерой, и запустить их одновременно.Это заставило первую сессию сообщать о кадрах в течение примерно секунды, но как только вторая запустила первые остановки по собственному желанию.Порядок, в котором вы отправляете startRunning, определяет, какой из сеансов в конечном итоге удастся вытеснить другой.
Наконец, я попробовал простой подход к пинг-понгу.Поэтому я создаю две сессии, запускаю первую и, как только она сообщает о кадре, прекращаю ее и запускаю вторую.Затем остановите второе и начните первое до бесконечности.К сожалению, задержка между запросом начала сеанса и получением первого кадра оставила мне примерно один кадр каждые две секунды.
Конечно, возможно, я допустил ошибку в своем коде, но я склонен сказать, что это невозможнона текущем оборудовании или ОС.Я перехватываю уведомления AVCaptureSession, чтобы увидеть, если мне дана явная причина, почему кто-то останавливается и обновляет этот пост.
Дополнения: моя программа получает только уведомления AVCaptureSessionDidStartRunningNotification, по одному от каждого сеанса захвата.Тот, который останавливается, не сообщает об ошибке, прерывании или другой остановке.Я также не могу найти проблему с моим кодом, такую как повторное использование объекта или очереди отправки, которая могла бы вызвать эту проблему.