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
,