2017-02-27 770 views
1

從android攝像頭api2中,我們可以設置LENS_FOCUS_DISTANCE(從0到10)。我的問題是如何獲得LENS_FOCUS_DISTANCE?例如,在自動對焦後,我想知道當前的對焦距離。我應該打電話給哪個功能?謝謝。如何從android設備獲取LENS_FOCUS_DISTANCE

+0

我對這個問題也很感興趣。請讓我們知道,如果你找到任何解決方案。 –

回答

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的使用。