我在 Samsung S5
上使用 camera2API,如果我尝试获取焦点状态,我会得到值 0
,它等于 CaptureResult.CONTROL_AF_STATE_INACTIVE
...
有一段代码:
private void process(CaptureResult result) {
switch (mState) {
case CameraHelper.STATE_PREVIEW: {
// We have nothing to do when the camera preview is working normally.
here i get ---> Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
if (CaptureResult.CONTROL_AF_TRIGGER_START == afState) {
if (areWeFocused) {
Log.e("---!!! HERE !!!--- :", String.valueOf(areWeFocused));
}else {
}
}
if (CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED == afState) {
areWeFocused = true;
} else {
areWeFocused = false;
}
break;
}
但我也尝试在我的 Meizu MX5
上测试它,我得到 1
- CaptureResult.CONTROL_AF_TRIGGER_START
或 2
- CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED
问题是:我的代码有什么不同?为什么我在一种情况下得到 0
而在另一种情况下得到 1 或 2
?
最佳答案
我知道这是一个老问题,但我刚刚遇到了同样的问题。通读有关 ControlAfState 的 Android 文档(AF = Auto Focus 对于那些不知道的人,就像我一样)。如果自动对焦模式 (afMode) 设置为 AF_MODE_OFF,您将获得 Inactive 的 ControlAfState。
关于java - 为什么我得到 result.get(CaptureResult.CONTROL_AF_STATE); == 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40191811/