AVCapture 任意形状镜头

AVCapture arbitrary shaped lens

开始在 swift 应用程序中处理相机 我有以下代码块(我从网上获得)按预期工作。

previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer!)
previewLayer?.frame = self.view.layer.frame
captureSession.startRunning()

我现在想修改它,所以我可以决定我的镜头的形状,此时它是一个标准的矩形。

我必须能够使用椭圆、星形、多边形……或其他任何形状。

我想我应该在 previewLayer 上工作,但我什至不确定,更重要的是我真的不知道该怎么做。

如果这可能对其他人有用,我post这里是我找到的解决方案,以椭圆为例。

previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer!)
previewLayer?.frame = self.view.layer.frame

let maskLayer = CAShapeLayer()
maskLayer.path = CGPathCreateWithEllipseInRect(CGRect(x: 50.0, y: 100.0, width: 200.0, height: 100.0), nil)
previewLayer!.mask = maskLayer

captureSession.startRunning()