2016-08-12 4 views
0

Ich arbeite mit Camera API 2 in Android und versuche, die Autofokus-Funktion anzuwenden. Der Autofokus funktioniert gut mit der Rückfahrkamera, nicht aber mit der Frontkamera.Android Kamera API 2 Autofokus auf Frontkamera

(Ich bin mit Android 5.1 und 6.0-Geräte)

Detail:

Dies ist der Auslöser Autofokus zu starten:

mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START); 

und dies ist der CameraCaptureSession.CaptureCallback

Integer afState = result.get(CaptureResult.CONTROL_AF_STATE); 

Der Wert von afState ist immer 0 (INAKTIV), wenn ich Frontkamera benutze. Aber mit der Rückkamera wird dieser Wert von 2 (CONTROL_AF_STATE_PASSIVE_FOCUSED - Versuch, zu fokussieren) auf 4 (CONTROL_AF_STATE_FOCUSED_LOCKED, wenn der Fokus erfolgreich war) oder 5 (CONTROL_AF_STATE_NOT_FOCUSED_LOCKED, wenn der Fokus nicht erfolgreich war) geändert.

Haben Sie eine Ahnung, warum ich Autofokus nicht auf Frontkamera verwenden kann?

Antwort

4

Ich glaube, Ihre Frontkamera hat keinen Autofokus. Um dies zu überprüfen Sie

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

Wenn die einzige verfügbare AF-Modus CameraMetadata.CONTROL_AF_MODE_OFF ist ausführen kann, dann bedeutet es, Ihre Kamera Fokuslinse befestigt ist. Und gemäß documentation, wenn android.control.afModeAF_MODE_OFF oder AF_MODE_EDOF ist, wird der Zustand immer INACTIVE bleiben.

Verwandte Themen