Android Camera API 2自动对焦于前置摄像头

时间:2016-08-12 17:18:11

标签: android camera autofocus front-camera camera-api

我在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(非活动)。但是使用后置摄像头,该值从2(CONTROL_AF_STATE_PASSIVE_FOCUSED - 尝试聚焦)变为4(焦点成功时CONTROL_AF_STATE_FOCUSED_LOCKED)或5(焦点失败时CONTROL_AF_STATE_NOT_FOCUSED_LOCKED)。

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

1 个答案:

答案 0 :(得分:7)

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

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

如果唯一可用的自动对焦模式为CameraMetadata.CONTROL_AF_MODE_OFF,则表示您的相机具有定焦镜头。根据{{​​3}},当android.control.afModeAF_MODE_OFFAF_MODE_EDOF时,状态将始终为INACTIVE