如何将缩放变换应用于 AVCaptureVideoPreviewLayer

How to Apply a Scale transform to an AVCaptureVideoPreviewLayer

我有一个名为 previewlayerAVCaptureVideoPreviewLayer,它被设置为一个名为 VideoOutUIImageView,它是使用 Storyboard

实现的

我用来连接它们的代码如下

    previewlayer.frame = VideoOut.bounds 

然后我想添加一个“放大”按钮,每次按下“放大”按钮时,该按钮都会 VideoOut 缩放 0.25 倍。我尝试使用的方法如下所示

    @IBAction func Zooma(_ sender: Any) {
    UIView.animate(withDuration: 0.0, delay: 0.0, options: [], animations: {
        self.VideoOut.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)
    }, completion: nil)

虽然这在使用视频源缩放 ImageView 方面没有任何作用。虽然当我在未连接到 AVCaptureVideoPreviewLayer 的 Imageview 上使用相同的代码时,代码行按预期工作。

任何建议或见解将不胜感激

如果您想要流畅的视频缩放,请在捕获层源自的 AVCaptureDevice 对象上尝试 zoom rampramp(toVideoZoomFactor: 1.25, withRate: 0.25)