java如何检查摄像头自动对焦何时完成?
我想知道是否有办法知道自动对焦何时完成
我有一个应用程序可以对视频进行图像处理。我需要做的第一件事是打开闪光灯和自动对焦,我的问题是我不知道自动对焦是否完成(我需要通过编程知道),所以我只能在自动对焦完成后才能开始所有的图像处理
以下是我配置摄像头设置的方式:
@Override
public void surfaceCreated(SurfaceHolder arg0) {
try {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
parameters.setFocusMode(Parameters.FOCUS_MODE_AUTO);
camera.setParameters(parameters);
camera.setPreviewDisplay(holder);
camera.startPreview();
recorder = new MediaRecorder();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我只想说清楚,一切正常,我只想知道自动对焦什么时候完成
谢谢
# 1 楼答案
您必须首先检查
camera
是否支持autofocus
。这样检查一下,你也可以检查你的手机是否支持闪光灯,或者不支持这个链接How turn on camera flash light programmatically in Android?# 2 楼答案
好吧,我找到了答案,我不知道为什么我以前不考虑它。 这是新代码:
# 3 楼答案
Camera类(现已弃用)中的“autoFocus”方法只触发一个自动对焦事件,回调仅与该事件相关。对于未来的自动对焦事件,它将不会再次触发
要知道每次自动聚焦何时开始和停止,您需要调用setAutoFocusMoveCallback方法,并传入AutoFocusMoveCallback实例。当自动对焦开始时,回调中的“start”参数为true,当自动对焦完成时为false