iPhone: переключение передней / задней камеры AVCaptureDeviceInput при обработке отдельных кадров с помощью setSampleBufferDelegate - PullRequest
2 голосов
/ 12 марта 2012

У меня возникла интересная проблема, когда я пытаюсь переключиться с использования передней камеры на использование задней камеры при обработке отдельных кадров с помощью селектора AVCaptureVideoDataOutput: setSampleBufferDelegate. Замена камеры работает, и экран предварительного просмотра, который я отображаю, выглядит великолепно, просто получаемые кадры больше не находятся в портретном режиме, они находятся в альбомной ориентации. Кроме того, переключение с передней панели на заднюю камеру приведет к тому, что задняя камера захватывает пейзажные рамки. Я подозреваю, что, поскольку это тот случай, когда я поменяю вход, что-то облажается - это не вход, который неверен. Я проверил эту теорию, запустив AVCaptureSession с фронтальной камерой - кадры, переданные в буферный делегат, правильно находятся в портретном режиме. Я также играл с явной остановкой AVCaptureSession, пока ввод устройства менялся без разницы в результатах.

Я черпал из демоверсии AVCam для вдохновения. Подозрительное различие между этим кодом и моим состоит в том, что он записывает в AVCaptureMovieFileOutput - он не обрабатывает отдельные кадры.

Есть идеи? Почему ориентация кадров, отправленных на мой процессор, изменится, когда я поменяю местами вход устройства?

Спасибо за любой ответ!

1 Ответ

0 голосов
/ 13 марта 2012

Ах, ха! Я понял. По какой-то причине после переключения входа устройства AVCaptureConnection моего видеовыхода сбрасывал ориентацию в альбомную. Чтобы решить эту проблему, после того, как я поменял местами вход, я явно прошу AVCaptureConnection видеовыхода установить его ориентацию в портретную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...