我正在开发一个Android应用程序,它需要我处理可视化数据。相关代码的当前概要如下:
public class ProcessFrames extends Activity implements Camera.PreviewCallback {
...
@override
public void onPreviewFrame(byte[] data, Camera camera) {
// PROCESSING CODE HERE
}
...
}
我想在开始处理帧之前等待相机完成自动对焦。为了达到这个目的,我将上述大纲改为:
public class ProcessFrames extends Activity implements Camera.PreviewCallback, Camera.AutoFocusCallback {
...
boolean autoFocusDone = false;
@Override
public void onAutoFocus(boolean success, Camera camera) {
if(success) autoFocusDone = true;
}
@override
public void onPreviewFrame(byte[] data, Camera camera) {
if(autoFocusDone) {
// PROCESSING CODE HERE
}
}
...
}
我面临的问题是boolean autoFocusDone
仍然是错误的,因此处理代码永远不会运行。我不明白我做错了什么。我应该如何解决这个问题?
我确保设备支持自动对焦,并且我已正确设置了相机参数。