Android Camera API 2 Автофокус на передней камере

Я работаю с Camera API 2 в Android и пытаюсь применить функцию автофокуса. Автофокус работает нормально с задней камерой, но не с фронтальной камерой.

(Я использую устройства 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, если фокус неуспешен).

Ребята, вы понимаете, почему я не могу использовать автофокус на передней камере?

1 ответ

Решение

Я считаю, что ваша фронтальная камера не имеет автофокуса. Чтобы проверить это вы можете выполнить

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

Если доступен только режим автофокусировки CameraMetadata.CONTROL_AF_MODE_OFF, то это значит, что ваша камера имеет объектив с фиксированным фокусом. И согласно документации, когда android.control.afMode является AF_MODE_OFF или же AF_MODE_EDOF государство всегда останется INACTIVE,

Другие вопросы по тегам