我使用camera2拍摄照片,并将闪光模式设为自动。我将请求参数设置如下。
CaptureRequest.Builder stillCaptureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
stillCaptureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
在上面的代码中,闪光灯应在低光条件下闪光。但它没有按预期工作。闪光灯没有在光线不足的情况下被解雇。
如何将camera2设置为自动闪光模式?
答案 0 :(得分:1)
让我们看看我是否可以帮助你!
如果您使用的是AE_MODE,请尝试将Flash_mode设置为OFF:
builder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON);
builder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);
以后再次更新您的预览设置对您的构建器和回调的重复请求:
mCaptureSession.setRepeatingRequest(builder.build(),
callback, backgroundHandler);
另外请记住,如果您想检查是否所有设置都正确,您可以在拍照之前或之后使用捕捉来自您的captureCalback返回值的result.get(CaptureResult.FLASH_STATE)
来恢复闪光灯的状态。
换句话说,不要忘记在拍摄闪光灯时不要更新预览,否则在照片拍摄之前你会关闭闪光灯。
答案 1 :(得分:0)
尝试使用自动闪光
// Use the same AE and AF modes as the preview.
captureStillBuilder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
captureStillBuilder.set(CaptureRequest.CONTROL_AE_MODE,
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);