内置的摄像机应用程序(例如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()
,例如当相机靠近或远离主题时,或者稍微移动时?