2015-01-17 6 views
2

Я пытаюсь создать пользовательскую камеру с помощью AVCaptureSession. Код и все работает нормально. Единственная проблема - уровень видеоизображения увеличен. Что делает мои фото по умолчанию увеличенными.AVCaptureSession дает увеличенный вывод

Я пробовал все, но не мог найти решение. Вот небольшой фрагмент из Кодекса я использую:

AVCaptureSession *session = [[AVCaptureSession alloc] init]; 
session.sessionPreset = AVCaptureSessionPresetPhoto; 


AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; 
[captureVideoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 

EDIT Я изменил AVLayerVideoGravityResizeAspectFill к AVLayerVideoGravityResizeAspect, это исправил выход немного, но видео не пришел на весь экран. PLease см. Снимок экрана enter image description here

Почему его показ Белого пространства (вид, на который я его установил)? Почему он не покрывает эту часть? Что-то пропало?

+0

Фактически 'AVLayerVideoGravityResizeAspectFill' заставляет ваш видеокадр заполнять высоту и ширину с сохранением пропорций для слоя. Поэтому в случае, вы можете попробовать «AVLayerVideoGravityResizeAspect» как гравитацию видео. –

+0

@AdilSoomro Я пробовал это. Но это делает экран неудобным. – Jasmeet

+0

@AdilSoomro Я сделал некоторые изменения в ответе, COuld, пожалуйста, проверьте, THanks – Jasmeet

ответ

0

Исправление из-за этого, что я нашел, было то, что вы должны дать AVCaptureVideoPreviewLayer раму с равной шириной и высотой. Я получил это решение, посмотрев на Интерфейс сканирования Whatsapp.

И это отлично работает!