2016-08-12 271 views
0

我正在使用Camera API 2並嘗試應用自動對焦功能。自動對焦與後置攝像頭無關,但不支持前置攝像頭。Android攝像頭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聚焦失敗)。

你們對我爲什麼不能在前置攝像頭上使用自動對焦有什麼想法嗎?

回答

4

我相信你的前置攝像頭沒有自動對焦功能。 要檢查這一點,你可以執行

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

如果唯一可用的自動對焦模式爲CameraMetadata.CONTROL_AF_MODE_OFF,那麼就意味着你的相機定焦鏡頭。並根據documentationandroid.control.afModeAF_MODE_OFFAF_MODE_EDOF該州將永遠保持INACTIVE