在我的 Android Camera2 API 项目中,我想为曝光计算设置一个区域。不幸的是它不起作用。另一方面,焦点区域工作没有任何问题。
设备:三星 S7 / Nexus 5
1.) CONTROL_AF_MODE 和 CONTROL_AE_MODE 的初始值
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
2.) 创建 MeteringRectangle 列表
meteringFocusRectangleList = new MeteringRectangle[]{new MeteringRectangle(0,0,500,500,1000)};
3.) 检查设备是否支持并设置 CONTROL_AE_REGIONS (CONTROL_AF_REGIONS 相同)
if (camera2SupportHandler.cameraCharacteristics.get(CameraCharacteristics.CONTROL_MAX_REGIONS_AE) > 0) {
camera2SupportHandler.mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_REGIONS, meteringFocusRectangleList);
}
4.) 告诉相机开始曝光控制
camera2SupportHandler.mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER, CameraMetadata.CONTROL_AE_PRECAPTURE_TRIGGER_START);
CONTROL_AE_STATE 始终处于 CONTROL_AE_STATE_SEARCHING 中,但不使用配置的区域...