2016-08-12 272 views
0

我正在使用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聚焦失败)。

你们对我为什么不能在前置摄像头上使用自动对焦有什么想法吗?

回答

4

我相信你的前置摄像头没有自动对焦功能。 要检查这一点,你可以执行

int[] afAvailableModes = cameraCharacteristics.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES); 

如果唯一可用的自动对焦模式为CameraMetadata.CONTROL_AF_MODE_OFF,那么就意味着你的相机定焦镜头。并根据documentationandroid.control.afModeAF_MODE_OFFAF_MODE_EDOF该州将永远保持INACTIVE