在自动闪光模式下,在低光照条件下,Android camera2闪光灯不会闪光

时间:2016-05-31 09:28:25

标签: android android-camera android-camera2

我使用camera2拍摄照片,并将闪光模式设为自动。我将请求参数设置如下。

CaptureRequest.Builder stillCaptureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
stillCaptureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);

在上面的代码中,闪光灯应在低光条件下闪光。但它没有按预期工作。闪光灯没有在光线不足的情况下被解雇。

如何将camera2设置为自动闪光模式?

2 个答案:

答案 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);