AVCaptureVideoPreviewLayer视频帧大小

问题描述 投票:2回答:2

如何在AVCaptureVideoPreviewLayer中获取图像大小:

self.cameraPreviewLayer.frame = self.cameraView.frame; // (0.0, 0.0, 320.0, 568.0)

AVCaptureVideoPreviewLayer内的图像比框架小。

ios swift video avfoundation frame
2个回答
4
投票

您无法在AVCaptureVideoPreviewLayer框架内获得实际渲染的大小。你必须计算它。

以下是获取实际视频尺寸的方法:

AVCaptureDeviceInput *videoDeviceInput = // initialised already in your app

// Here you can get the video dimensions:
CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(videoDeviceInput.device.activeFormat.formatDescription);

从这里你可以计算AVCaptureVideoPreviewLayer框架内的纵横拟合矩形。


0
投票

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
}
© www.soinside.com 2019 - 2024. All rights reserved.