Встроенное приложение Camcorder (как и на 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