如何在AVCaptureVideoPreviewLayer
中获取图像大小:
self.cameraPreviewLayer.frame = self.cameraView.frame; // (0.0, 0.0, 320.0, 568.0)
AVCaptureVideoPreviewLayer
内的图像比框架小。
您无法在AVCaptureVideoPreviewLayer
框架内获得实际渲染的大小。你必须计算它。
以下是获取实际视频尺寸的方法:
AVCaptureDeviceInput *videoDeviceInput = // initialised already in your app
// Here you can get the video dimensions:
CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(videoDeviceInput.device.activeFormat.formatDescription);
从这里你可以计算AVCaptureVideoPreviewLayer
框架内的纵横拟合矩形。
SWIFT代码
var captureSession : AVCaptureSession?
var captureInput : AVCaptureDeviceInput?{
get{
return self.captureSession?.inputs.first as? AVCaptureDeviceInput
}
}
func doSomething(){
guard let captureInput = captureInput else{ return }
let dims : CMVideoDimensions = CMVideoFormatDescriptionGetDimensions(captureInput.device.activeFormat.formatDescription)
//do whatever
}