在我的自定义相机找到焦点后,我尝试锁定焦点。首先,将它的自动对焦模式设置为自动:
builder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_AUTO);
在触摸预览后,它会找到焦距,然后我必须使用此代码锁定AF和AE:
builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
builder.set(CaptureRequest.CONTROL_AE_LOCK, true);
锁定自动曝光在任何设备上都能正常工作。锁定自动对焦在Nexus5和Nexus 5x上可以工作。但是对于三星S5和S6,它仍在尝试搜索焦点。
最佳的锁定焦点的方式是什么?
session.setRepeatingRequest()
时,第二个参数是一个CameraCaptureSession.CaptureCallback
。您必须创建一个,在onCaptureCompleted()
回调中获取TotalCaptureResult
。然后,您可以处理该TotalCaptureResult
以获取不同类型的信息,例如AF_MODE
或当前的AE_STATE
等。例如,您可以通过调用result.get(CaptureResult.CONTROL_AF_MODE)
来检索当前的AF_MODE
。 请注意,某些值在某些帧中可能为null,具体取决于设备,因此始终检查可空性。 - Yamidragut