AVFoundation Camera Preview показывает неправильный зум - PullRequest
3 голосов
/ 07 сентября 2010

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

Я использую классы и методы AVFoundation в соответствии с уничтожениемUIScreenCapture.

Проблема, с которой я столкнулся, заключается в том, что данные предварительного просмотра, которые я получаю с AVCaptureSession, слишком сильно увеличены.разница в увеличении слишком велика.

Мне нужно, чтобы масштаб моего приложения был таким же, как и по умолчанию для приложения камеры iPhone.

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

Пожалуйста, любые предложения по этой проблеме действительно приветствуются.

Ответы [ 3 ]

2 голосов
/ 08 февраля 2011

Решение Arcantos было в основном правильным. Это будет работать, если вы используете iPhone 3G (или любое устройство с камерой, поддерживающей 640x480). IPhone 4 может столкнуться с некоторыми проблемами там.

Более правильным способом было бы проверить наличие и применить этот пресет:

captureSession.sessionPreset = AVCaptureSessionPresetPhoto;

При этом будут использоваться необработанные данные камеры независимо от собственного разрешения.

1 голос
/ 13 октября 2010

Оказалось, проблема с разрешением.Это было исправлено с помощью

myCaptureSession.sessionPreset = AVCaptureSessionPreset640x480

Обратите внимание, что iPhone 3g не поддерживает это, поэтому вы должны спросить, поддерживает ли устройство это

[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] supportsAvCaptureSessionPreset:AVCaptureSessionPreset640x480]
0 голосов
/ 07 сентября 2010

Соотношение сторон панели предварительного просмотра совпадает с форматом данных захвата камеры? Если нет, ОС может изменять масштаб для соответствия прямоугольника данных требуемому формату изображения.

...