【问题标题】:Camera2 CaptureResult.CONTROL_AF_STATE - INACTIVECamera2 CaptureResult.CONTROL_AF_STATE - INACTIVE
【发布时间】:2020-02-04 09:53:29
【问题描述】:

我正在使用camera2 api,基于 Google 示例。 在我的设备上工作正常,但在模拟器(可能还有其他一些设备)上不能工作。

原因CaptureResult.CONTROL_AF_STATE 处于状态CaptureResult.CONTROL_AF_STATE_INACTIVE

部分代码(与谷歌示例相同)

case STATE_WAITING_LOCK: {

                Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);

                if (afState == null) {
                    captureStillPicture();
                } else if (CaptureResult.CONTROL_AF_STATE_FOCUSED_LOCKED == afState ||
                        CaptureResult.CONTROL_AF_STATE_NOT_FOCUSED_LOCKED == afState) {
                    // CONTROL_AE_STATE can be null on some devices
                    Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
                    if (aeState == null ||
                            aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) {
                        mState = STATE_PICTURE_TAKEN;
                        captureStillPicture();
                    } else {
                        runPrecaptureSequence();
                    }
                }
                break;
            }

我们可以看到状态是否为INACTIVE 没有任何反应。 恐怕这不仅会发生在模拟器上,所以即使AUTO FOCUS STATE INACTIVE,我的问题也不安全拍照?以及如何处理?

【问题讨论】:

    标签: android android-camera android-camera2


    【解决方案1】:

    在模拟器中,自动对焦模式可能不可用。

    因此,除了空检查之外,还可以尝试将条件更改为非活动状态。

         if (afState == null || CaptureResult.CONTROL_AF_STATE_INACTIVE == afState) {
                             captureStillPicture();
         }
    

    【讨论】:

      猜你喜欢
      • 2013-07-09
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 2021-12-26
      • 2018-11-25
      • 1970-01-01
      • 2015-07-23
      相关资源
      最近更新 更多