【发布时间】:2016-10-05 13:16:30
【问题描述】:
如何使用 camera2 api 在 android 中自动捕捉照片? api 21 及以上版本没有像 onAutoFocused() 这样的回调。
【问题讨论】:
-
请提供一些代码说明
如何使用 camera2 api 在 android 中自动捕捉照片? api 21 及以上版本没有像 onAutoFocused() 这样的回调。
【问题讨论】:
您必须手动触发 AF 和 AE。 标准管道是:
CaptureRequest.Builder 中将CONTROL_AF_TRIGGER 设置为CONTROL_AF_TRIGGER_START,并通过CameraCaptureSession capture 方法提交到会话。调用 capture 后,请记住在 CaptureRequest.Builder 中将 CONTROL_AF_TRIGGER 重置为 CONTROL_AF_TRIGGER_IDLE 以进行预览;CaptureResult.CONTROL_AF_STATE of TotalCaptureResult是否为CONTROL_AF_STATE_FOCUSED_LOCKED || CONTROL_AF_STATE_NOT_FOCUSED_LOCKED || CONTROL_AF_STATE_PASSIVE_FOCUSED || CONTROL_AF_STATE_PASSIVE_UNFOCUSED
CaptureRequest.Builder 中将CONTROL_AE_PRECAPTURE_TRIGGER 设置为CONTROL_AE_PRECAPTURE_TRIGGER_START,并通过CameraCaptureSession capture 方法提交到会话。调用 capture 后,请记住在 CaptureRequest.Builder 中将 CONTROL_AE_PRECAPTURE_TRIGGER 重置为 CONTROL_AE_PRECAPTURE_TRIGGER_IDLE 以进行预览;CaptureResult.CONTROL_AE_STATE of TotalCaptureResult是否为CONTROL_AE_STATE_CONVERGED || CONTROL_AE_STATE_FLASH_REQUIRED || CONTROL_AE_STATE_LOCKED
我也体验过可以同时触发 AF e AE(步骤 1-3)并同时等待它们(步骤 2-4)。
【讨论】: