Android摄像头API 2自动对焦前置摄像头
问题描述:
我正在使用Camera API 2并尝试应用自动对焦功能。自动对焦与后置摄像头无关,但不支持前置摄像头。Android摄像头API 2自动对焦前置摄像头
(我用的是Android 5.1和6.0的设备)
详细信息:
这是启动自动对焦触发器:
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START);
,这是CameraCaptureSession.CaptureCallback
Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
如果我使用前置摄像头,则afState的值始终为0(非活动)。但使用后置摄像头时,该值从2(CONTROL_AF_STATE_PASSIVE_FOCUSED--尝试聚焦)变为4(聚焦成功时为CONTROL_AF_STATE_FOCUSED_LOCKED)或5(CONTROL_AF_STATE_NOT_FOCUSED_LOCKED聚焦失败)。
你们对我为什么不能在前置摄像头上使用自动对焦有什么想法吗?
答
我相信你的前置摄像头没有自动对焦功能。 要检查这一点,你可以执行
int[] afAvailableModes = cameraCharacteristics.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES);
如果唯一可用的自动对焦模式为CameraMetadata.CONTROL_AF_MODE_OFF
,那么就意味着你的相机定焦镜头。并根据documentation当android.control.afMode
是AF_MODE_OFF
或AF_MODE_EDOF
该州将永远保持INACTIVE
。