Swift3 Swift中预览层的AVCapture和缩放
我有一个摄像头应用程序,允许用户拍照和录制视频。iPhone通过适配器连接到医疗耳镜,因此捕获的视频非常小(大约一角硬币大小)。我需要能够缩放视频以填充屏幕,但还没有弄清楚如何做到这一点 我发现它使用了ObjC,但没有成功地将其翻译成Swift。我离得很近,但我被卡住了。以下是我处理UIPinchGestureRecgoznier的代码:Swift3 Swift中预览层的AVCapture和缩放,swift3,avfoundation,avcapture,xcode8.1,Swift3,Avfoundation,Avcapture,Xcode8.1,我有一个摄像头应用程序,允许用户拍照和录制视频。iPhone通过适配器连接到医疗耳镜,因此捕获的视频非常小(大约一角硬币大小)。我需要能够缩放视频以填充屏幕,但还没有弄清楚如何做到这一点 我发现它使用了ObjC,但没有成功地将其翻译成Swift。我离得很近,但我被卡住了。以下是我处理UIPinchGestureRecgoznier的代码: @IBAction func handlePinchGesture(sender: UIPinchGestureRecognizer) {
@IBAction func handlePinchGesture(sender: UIPinchGestureRecognizer) {
var initialVideoZoomFactor: CGFloat = 0.0
if (sender.state == UIGestureRecognizerState.began) {
initialVideoZoomFactor = (captureDevice?.videoZoomFactor)!
} else {
let scale: CGFloat = min(max(1, initialVideoZoomFactor * sender.scale), 4)
CATransaction.begin()
CATransaction.setAnimationDuration(0.01)
previewLayer?.transform = CGAffineTransform(scaleX: scale, y: scale)
CATransaction.commit()
if ((captureDevice?.lockForConfiguration()) != nil) {
captureDevice?.videoZoomFactor = scale
captureDevice?.unlockForConfiguration()
}
}
}
这条线
previewLayer?.transform = CGAffineTransform(scaleX: scale, y: scale)
。。。给出错误“无法将类型为“CGAffineTransform”的值分配给类型为“CGTransform3D”。我正试图解决这个问题,但我试图解决这个问题却没有结果。解决了:将有问题的行更改为:
previewLayer?.setAffineTransform(CGAffineTransform(scaleX: scale, y: scale))