Как предотвратить вращение видеопотока в альбомной ориентации - AVCaptureSession и OpenGL - PullRequest
1 голос
/ 03 ноября 2011

Я создал приложение, которое захватывает видеопоток в реальном времени, выполняет некоторую обработку видеопотока с помощью OpenGL ES и отображает его на экране в UIView

По существу поток данных: AVCaptureSession -> AVCaptureDeviceInput -> AVCaptureVideoDataOutput -> буферы gl -> рисует в UIView

Я не использую AVCaptureVideoPreviewLayer для отображения контента.

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

Однако мое приложение предназначено для использования в ландшафте. В моем методе shouldAutorotateToInterfaceOrientation в суперпредставлении я разрешаю только UIInterfaceOrientationLandscapeLeft и UIInterfaceOrientationLandscapeRight.

Моя проблема в том, что видеопоток вращается. Телефон ориентирован на ландшафт, а видеопоток повернут на 90 градусов. Я бы хотел, чтобы видеопоток был в той же ориентации.

Я не понимаю, почему видео поток вращается, я думаю, что он пытается компенсировать ландшафтный режим, но я не знаю, как предотвратить это вращение. Есть идеи?

Спасибо

Mike


Спасибо за ответ VinceBurn.

В конечном итоге я опробовал методы в этом посте

И остановился на примере кода для willRotateToInterfaceOrientation: duration

1 Ответ

0 голосов
/ 03 ноября 2011

Не знаю, сработает ли это, я просто угадаю кое-что здесь.

Если не найдено простого решения, возможно, попробуйте применить преобразование поворота на 90 ° к слою UIView.(Мне не нравится эта идея, но она может сработать)

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