内置的Camcorder App(就像HTC EVO上的那个一样)似乎仅在预览图像更改时才调用camera.autoFocus()。如果稳固握住相机,则不会出现camera.autoFocus()
我想在camera.startPreview()处于 Activity 状态时复制此行为,如下面的初始预览设置代码所示:

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便携式摄像机应用程序似乎使用传感器或算法来触发autoFocus()。但是,完成此autoFocus()触发器后,它的工作异常出色。是否有人知道在需要时如何按需触发autoFocus(),例如将相机移近或远离主体或稍微摇动时如何触发ojit_code?
谢谢,
格里

最佳答案

自API级别9( Gingerbread )以来,Android引入了continuous auto focus。它比定期调用Camera.autoFocus更好。

07-28 03:48
查看更多