You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Camera2 API获取自动对焦模式下相机的当前焦距?

解决自动对焦模式下获取当前焦距的问题

你调用的LENS_INFO_MINIMUM_FOCUS_DISTANCE是相机硬件的固定参数,代表镜头支持的最小对焦距离,所以无论怎么调整焦平面,它的值都不会改变,这就是你一直得到0.22的原因。

要获取相机当前的实时对焦距离,需要使用CaptureResult.LENS_FOCUS_DISTANCE参数(Camera2 API),或者对应旧版Camera1 API的Camera.getParameters().getFocusDistance()方法。

Camera2 API 实现示例

在Camera2的回调中获取实时对焦距离:

// 初始化相机时设置CaptureCallback
mCaptureSession.setRepeatingRequest(mPreviewRequest, new CameraCaptureSession.CaptureCallback() {
    @Override
    public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
        super.onCaptureCompleted(session, request, result);
        // 获取当前对焦距离,单位为米
        float currentFocusDistance = result.get(CaptureResult.LENS_FOCUS_DISTANCE);
        Log.e("FocusDistance", String.valueOf(currentFocusDistance));
    }
}, mBackgroundHandler);

注意事项

  • LENS_FOCUS_DISTANCE的值单位是米,自动对焦过程中会实时更新。
  • 如果使用的是旧版Camera1 API,直接调用camera.getParameters().getFocusDistance()即可获取当前对焦距离。
  • 确保相机处于预览或拍摄状态,才能获取到有效的实时对焦数据。

内容的提问来源于stack exchange,提问作者ZhenzheHe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:02:36