4

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

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

在上面的代码中,闪光灯应该在弱光条件下触发。但它没有按预期工作。闪光灯在光线不足的情况下没有闪光。

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

4

2 回答 2

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

还请记住,如果您想检查所有设置是否正确,您可以在result.get(CaptureResult.FLASH_STATE)拍照之后或之前从您的 captureCalback 返回值中恢复闪存的状态。

否则,请不要忘记在拍摄闪光灯时不要更新预览,否则您将在拍摄照片之前关闭闪光灯。

于 2016-06-27T13:24:02.997 回答
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);
于 2017-12-13T16:39:35.937 回答