2013-11-15 2 views
1

У меня возникают некоторые проблемы, пытаясь понять, почему AVCaptureVideoPreviewLayer сокращает угол камеры. Под этим я подразумеваю, что камера имеет больший масштаб, чем камера по умолчанию или камера UIImagePickerController. Я тестировал AVCaptureVideoPreviewLayer, и он выглядит так же, как и при использовании параметра «Видео» в приложении камеры по умолчанию.AVCaptureVideoPreviewLayer угол захвата сокращен?

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

ответ

4

Есть несколько свойств, которые вы можете попробовать изменить, чтобы решить эту проблему. Первый и наиболее вероятный, который я попробую, это свойство sessionPreset на вашем AVCaptureSession. Возможно, вы захотите попробовать AVCaptureSessionPresetPhoto, но есть больше вариантов, которые могут быть найдены в the docs

[session setSessionPreset:AVCaptureSessionPresetPhoto]; 

Это отличается от видео пресетов в том, что он не укорачивать угол захвата, в то время как все видео пресеты будут увеличивать и обрезать вход.

Кроме этого, вы можете настроить свойство contentGravity на уровне предварительного просмотра.

[previewLayer setContentsGravity:AVLayerVideoGravityResizeAspectFill]; 

Она имеет только три варианта, хотя, AVLayerVideoGravityResize, AVLayerVideoGravityResizeAspect и AVLayerVideoGravityResizeAspectFill.

+0

Хорошо, я попробовал добавить [session setSessionPreset: AVCaptureSessionPresetPhoto]; но не повезло. Я добавил его в captureManager, и везде я мог найти ссылку на AVCaptureSession. AVLayerVideoGravityResizeAspectFill уже был в моем коде, поэтому я не думаю, что мне это нужно. Есть идеи? Кстати, я использую код источника AVCam от Apple. Спасибо –

+0

Ничего, я попытался перейти на AVLayerVideoGravityResizeAspect и отлично работал! благодаря –

Смежные вопросы