我初始化了一个 AVCaptureSession
并按照以下方式进行预设:
AVCaptureSession *newCaptureSession = [[AVCaptureSession alloc] init];
if (YES==[newCaptureSession canSetSessionPreset:AVCaptureSessionPresetPhoto]) {
newCaptureSession.sessionPreset = AVCaptureSessionPresetPhoto;
} else {
// Error management
}
然后我设置了一个 AVCaptureVideoPreviewLayer
:
self.preview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/*426*/)];
CALayer *previewLayer = preview.layer;
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.session];
captureVideoPreviewLayer.frame = previewLayer.frame;
[previewLayer addSublayer:captureVideoPreviewLayer];
captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspect;
我的问题是: 如何获取确切的
CGSize
以显示所有captureVideoPreviewLayer
层在屏幕上?更准确地说,我需要高度,因为AVLayerVideoGravityResizeAspect
使AVCaptureVideoPreviewLayer
适合preview.size
?我试图获得适合的
AVCaptureVideoPreviewLayer
大小。非常感谢您的帮助。