在 AVCaptureVideoPreviewLayer
内如何获取图像大小:
self.cameraPreviewLayer.frame = self.cameraView.frame; // (0.0, 0.0, 320.0, 568.0)
AVCaptureVideoPreviewLayer
中的图像比帧小。
在 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
框架的长宽比矩形。
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
}
bounds
,会发生什么:self.cameraPreviewLayer.frame = self.cameraView.bounds
? - leekaiinthesky