Hia*_*iam 5 android android-camera camera2
所以,我设法用我想要的方式用旧相机创建我想要的功能.
用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;
}
}
Run Code Online (Sandbox Code Playgroud)
但我没有找到某种状态告诉我,我们已经得到了关注.有人知道如何使用Camera2 API完成此操作吗?
对于那些感兴趣的人,我最终混合了这个:
private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
private void process(CaptureResult result) {
switch (mState) {
case STATE_PREVIEW: {
int afState = result.get(CaptureResult.CONTROL_AF_STATE);
if (CaptureResult.CONTROL_AF_TRIGGER_START == afState) {
if (areWeFocused) {
//Run specific task here
}
}
if (CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED == afState) {
areWeFocused = true;
} else {
areWeFocused = false;
}
break;
}
}
}
@Override
public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request,
CaptureResult partialResult) {
process(partialResult);
}
@Override
public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
TotalCaptureResult result) {
process(result);
}
};
Run Code Online (Sandbox Code Playgroud)
它工作得很好:)
| 归档时间: |
|
| 查看次数: |
8487 次 |
| 最近记录: |