Swift isLockingFocusWithCustomLensPositionSupported始终返回false

时间:2019-04-30 07:27:16

标签: swift avcapturedevice avcapture avcam

我想将iPhoneX的镜头距离设置为恒定值。 为了检查是否支持该功能,我检查了设备的isLockingFocusWithCustomLensPositionSupported属性,如此处的文档所述:https://developer.apple.com/documentation/avfoundation/avcapturedevice/2361529-islockingfocuswithcustomlensposi

即使设备被锁定以进行配置,该方法也始终返回false,这意味着调用方法setFocusModeLocked(lensPosition, completionHandler)总是会引发错误。 为什么会这样,以及如何正确调用setFocusModeLocked()

下面是我的方法:

let device = self.deviceInput.device 
do { 
     try device.lockForConfiguration() 
     if device.isFocusPointOfInterestSupported && device.isFocusModeSupported(focusMode) 
     { 
      // this return true 
     } 
     if device.isLockingFocusWithCustomLensPositionSupported 
     { 
       //this always returns false
       device.setFocusModeLocked(lensPosition: focusDistance, completionHandler: nil) 
     } 
     device.unlockForConfiguration() 
   } catch { print("Could not lock device for configuration: \(error)") }

在iPhoneX,iOS 12上测试

0 个答案:

没有答案