所以,我成功地使用旧相机创建了我想要的功能,并按照自己的方式实现了它。
通过mCamera.autoFocus(autoFocusCallback);我可以检测到焦点并在预览模式下运行所需的代码。
现在,我很难理解如何在camera2 API中实现相同的功能。我的第一个想法是使用
private void process(CaptureResult result) {
switch (mState) {
case STATE_PREVIEW: {
// We have nothing to do when the camera preview is working normally.
int afState = result.get(CaptureResult.CONTROL_AF_STATE);
//if (CaptureResult.CONTROL_AF_STATE == afState) {
Log.d("SOME KIND OF FOCUS", "WE HAVE");
//}
break;
}
}
但我找不到任何状态来告诉我我们已经获得了焦点。有人知道如何使用Camera2 API实现吗?
false
吗? - Sirop4ikresult.get(CaptureResult.CONTROL_AF_STATE);
总是返回0... 0表示CaptureResult.CONTROL_AF_STATE_INACTIVE
。我在三星S5上测试时遇到了这个问题...但是相同的代码在魅族MX5上总是返回1或2...这是什么区别呢? - Sirop4ik