如何从Android设备获取LENS_FOCUS_DISTANCE

问题描述 投票:0回答:2

从android相机api2,我们可以设置LENS_FOCUS_DISTANCE(从0到10)。我的问题是如何获得 LENS_FOCUS_DISTANCE?例如,自动对焦后,我想知道当前的焦距。我应该调用哪个函数?谢谢。

android android-camera2 autofocus
2个回答
0
投票

您需要创建一个 CameraCaptureSession.CaptureCallback 并将其提供给您的 CaptureRequest.Builder。

mPreviewSession.capture(mPreviewBuilder.build(), captureCallbackHandler, mBackgroundHandler);

然后重写 CaptureCallback 中的 onCaptureCompleted 方法,您应该能够从 TotalCaptureResult 中读取 LENS_FOCUS_DISTANCE。

private CameraCaptureSession.CaptureCallback captureCallbackHandler = new CameraCaptureSession.CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) {
        super.onCaptureCompleted(session, request, result);
        float focusDistance = result.get(CaptureResult.LENS_FOCUS_DISTANCE);
    }
}

在我的 Nexus5 上自动对焦后,我可以读取此内容,但在 s8 上则不行。也许三星限制了这种能力来推广他们自己的相机 SDK 的使用。


0
投票

对焦距离范围仅限于0-10吗?是否可以将该范围增加到 15?

© www.soinside.com 2019 - 2024. All rights reserved.