Я работаю с новым API Camera2 на Samsung S5. Поддерживаемый уровень аппаратного обеспечения данного устройства составляет LEGACY
, что хорошо.Camera2 API AutoFocus с Samsung S5
Однако, похоже, я не могу автофокусироваться на этом устройстве. Запрос для запуска автоматической фокусировки выглядит следующим образом:
previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO);
previewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_START);
state = STATE_PREVIEW;
try {
captureSession.setRepeatingRequest(previewRequestBuilder.build(), captureCallback, backgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
}
После отправки запроса, результат запроса всегда CONTROL_AF_STATE_ACTIVE_SCAN
и иногда CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
.
Самое странное в том, что, когда государство CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
, авто-фокус возвращается в CONTROL_AF_STATE_ACTIVE_SCAN
состояние на некоторое время, а затем вернуться к CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
, что приводит к бесконечному циклу фокуса. Согласно документации, когда государство является CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
...
Объектив будет оставаться неподвижным до тех пор, режим автофокусировки (android.control.afMode) не изменяется или новый триггер AF отправляется на устройстве камеры (андроид. control.afTrigger).
Я интересно, если это несоответствие из-за того, что уровень аппаратной LEGACY
и что я должен вернуться к использованию устаревшее API камеры, но, кажется, с ума такой распространенной функции, такие как автофокус ,
Есть ли какие-либо рекомендации, как обращаться с устройствами, сообщающими LEGACY
?
ли вы решить эту проблему? –