Android相机API 2前置摄像头自动对焦

3

我正在使用Android的Camera 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(INACTIVE)。但是使用后置摄像头时,该值从2(CONTROL_AF_STATE_PASSIVE_FOCUSED-尝试对焦)更改为4(当对焦成功时为CONTROL_AF_STATE_FOCUSED_LOCKED)或5(当对焦不成功时为CONTROL_AF_STATE_NOT_FOCUSED_LOCKED)。

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

1个回答

9

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

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

如果唯一可用的自动对焦模式是CameraMetadata.CONTROL_AF_MODE_OFF,那么这意味着您的相机具有固定焦距镜头。根据文档,当android.control.afModeAF_MODE_OFFAF_MODE_EDOF时,状态将始终保持为INACTIVE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接