2015-01-17 3 views
2

AVCaptureSession을 사용하여 사용자 정의 카메라를 만들려고합니다. 코드가 모두 정상적으로 작동합니다. 유일한 문제는 VideoOutput Layer가 확대 된 것입니다. 기본적으로 내 사진이 확대됩니다.확대 된 출력을 제공하는 AVCaptureSession

모든 것을 시도했지만 해결책을 찾을 수 없었습니다. 이 출력을 수정, 내가 AVLayerVideoGravityResizeAspect에 AVLayerVideoGravityResizeAspectFill을 변경

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


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

EDIT 조금,하지만 비디오는 전체 화면에 제공되지 않은 : 여기에 간단한 코드를 사용하고 있습니다. 화면을 참조하십시오. enter image description here

왜 공백을 표시하는 이유는 무엇입니까? 왜 그 부분도 다루지 않는가? 누락 된 것이 있습니까?

+0

실제로'AVLayerVideoGravityResizeAspectFill'는 비디오 프레임이 레이어의 종횡비를 유지하면서 높이와 너비를 채우게합니다. 그러므로이 경우 AVLayerVideoGravityResizeAspect를 비디오 중력으로 사용하려고 할 수 있습니다. –

+0

@AdilSoomro 나는 그것을 시도했다. 그러나 그것은 화면을 어색하게 만든다. – Jasmeet

+0

@AdilSoomro 답안을 약간 변경 했으니 확인해주세요. 감사합니다. – Jasmeet

답변

0

내가 발견 한 문제는 AVCaptureVideoPreviewLayer너비와 높이가 동일한 인 프레임을 부여해야한다는 것입니다. Whatsapp 스캔 인터페이스을보고이 해결책을 얻었습니다.

그리고 완벽하게 작동합니다.