代码之家  ›  专栏  ›  技术社区  ›  Kartick Vaddadi

为什么自动聚焦范围限制没有效果?

  •  0
  • Kartick Vaddadi  · 技术社区  · 6 年前

    通过执行以下操作,可以让iPhone摄像头聚焦近距离或远距离对象:

    try! device.lockForConfiguration()
    defer { device.unlockForConfiguration() }
    device.autoFocusRangeRestriction = .near
    

    但是,无论我离得近还是远,还是让它不动,都没有什么区别。我在两部不同的手机上测试了iphonexs和X,并把它交给两位不同的同事测试,以防我做错了什么。

    我们在白天和晚上测试了画面中部分靠近而其余部分远离的场景。我们预计将范围限制设置为“近”会导致近部分聚焦,远部分也是如此。但它从来都不起作用。为什么?

    如果有关系,我会在设备添加到会话并且会话正在运行后更改范围限制。

    我还尝试在设置范围限制后通过执行以下操作强制运行AF算法 device.focusMode = .continuousAutoFocus 但这没什么区别。也不是 device.focusMode = .autoFocus

    1 回复  |  直到 5 年前
        1
  •  0
  •   user10817680 user10817680    6 年前

    您不需要强制执行AF算法。您正确识别的问题。基本上,将设备或captureSession添加到captureSession后对其所做的任何修改都不会生效。

    解决方案很简单:

    try! device.lockForConfiguration()
    defer { device.unlockForConfiguration() }
    device.autoFocusRangeRestriction = .near
    

    告诉我这是否解决了问题!:)