Встроенное приложение для видеокамеры (как в HTC EVO), похоже, вызывает camera.autoFocus()
только при изменении предварительного изображения. Если держать камеру неподвижно, camera.autoFocus()
не произойдет.
Я хотел бы продублировать это поведение, пока camera.startPreview()
активно, как в исходном коде настройки предварительного просмотра ниже:
camera = camera.open();
Camera.Parameters parameters = camera.getParameters();
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
{
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}
camera.setParameters(parameters);
camera.setPreviewDisplay(holder);
camera.startPreview();
Все примеры, которые я нашел для autoFocus()
, кажутся вызывающими его каждые 500 мс - 2000 мс, или один раз за мгновение до того, как делается снимок или начинается запись.
Приложение EVO Camcorder, похоже, использует датчик или алгоритм для запуска autoFocus()
. Однако этот autoFocus()
триггер сделан, он работает исключительно хорошо. Кто-нибудь знает, как вызвать autoFocus()
по требованию, когда это необходимо, например, когда камера перемещается близко или дальше от объекта или слегка панорамируется?
Спасибо,
Gerry