【发布时间】:2019-07-01 11:30:15
【问题描述】:
我在我的应用程序中使用前置摄像头。我希望在拍照时用户可以放大和缩小相机
我试过这段代码
let device = AVCaptureDevice.default(for: .video)
print(sender.scale)
let vZoomFactor = sender.scale * prevZoomFactor
if sender.state == .ended {
prevZoomFactor = vZoomFactor >= 1 ? vZoomFactor : 1
}
if sender.state == .changed{
do {
try device!.lockForConfiguration()
if (vZoomFactor <= device!.activeFormat.videoMaxZoomFactor) {
device!.videoZoomFactor = max(1.0, min(vZoomFactor, device!.activeFormat.videoMaxZoomFactor))
device?.unlockForConfiguration()
} else {
print("Unable to set videoZoom: (max \(device!.activeFormat.videoMaxZoomFactor), asked \(vZoomFactor))")
}
} catch {
print("\(error.localizedDescription)")
}
}
后置摄像头一切正常,但变焦不适用于前置摄像头。
【问题讨论】:
-
我觉得,前置摄像头不支持放大/缩小功能。你试过 iPhone 的相机应用吗?
-
是的,我检查了一些应用程序,如apps.apple.com/us/app/mirror/id431471943,它支持放大前置摄像头
-
好的,你调试了不同模式下的缩放系数值吗?什么导致 if 条件失败?
-
是的,我什么都没做。实际上,当我切换到后置凸轮时,它工作正常,当我切换到前部代码工作但缩放不应用时
标签: swift uigesturerecognizer avcapturesession avcapturedevice