0
私はAVFoundationにAVCaptureDeviceで「ピンチ・ツー・ズーム」機能を実装しようとしています:AVCaptureDevice videoZoomFactorピンチ・ツー・ズームレート
@IBAction func pinchGestureDetected(_ gestureRecognizer: UIPinchGestureRecognizer) {
switch gestureRecognizer.state {
case .began:
print ("began")
self.currenZoomFactor = self.videoDevice!.videoZoomFactor
do {
try self.videoDevice!.lockForConfiguration()
} catch let error as NSError {
NSLog("Could not lock device for configuration: %@", error)
}
case .changed:
print ("changed")
var zoomValue : CGFloat = ((gestureRecognizer.scale) - 1) + self.currenZoomFactor
if zoomValue > min(10.00, self.videoDevice!.activeFormat.videoMaxZoomFactor) {
zoomValue = min(10.00, self.videoDevice!.activeFormat.videoMaxZoomFactor)
} else if zoomValue < 1.00 {
zoomValue = 1.00
}
self.videoDevice!.videoZoomFactor = sentZoomValue
case .ended, .cancelled:
print ("ended/canceld")
self.videoDevice!.unlockForConfiguration()
default:
break
}
}
以上が正常に動作します。しかし、上記の場合、ズーム率はピンチスケールの直線です。これにより、ズーム倍率を上げるほどズームが非常に遅くなります。
ズーム倍率を上げても、ズーム倍率を上げる方法を教えてください。