Android camera2启用自动手电筒

时间:2017-11-09 05:38:47

标签: android android-camera2 flashlight camera-flash

如何在相机2中启用默认手电筒关闭或开启功能,我可以在默认相机中启用设置选项吗?

我看到了一些例如herehere但是他们使用自己的按钮来打开或关闭闪存,在这里我想通过启用它来使用默认值。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要将相机的自动曝光模式设置为其中一个闪光灯使用模式;通常是AE_MODE_ON_AUTO_FLASHAE_MODE_ON_ALWAYS_FLASH

您可以通过AE_AVAILABLE_MODES检查设备上可用的模式。

然后,在进行主要图像捕捉之前,您需要使用AE precapture trigger,以便可以触发预闪,以实现精确的闪光亮度控制。

  1. 确保您的预览请求具有所需的AE闪光模式,并将其设置为捕获会话的重复请求。
  2. 使用预览设置创建新的捕获请求构建器。
  3. 将预捕获触发器设置为该构建器的START
  4. 使用该构建器创建一个请求,并使用它调用CameraCaptureSession.capture()
  5. 等待PR {{}} AE_STATE出现并消失;在此期间,相机设备可能会点亮闪光灯以测量它需要的亮度。
  6. AE_STATE_PRECAPTURE结束后,使用STILL_CAPTURE模板发出高分辨率捕获请求(该模板将捕获意图控制设置为STILL_CAPTURE,触发主闪光灯闪烁)。
  7. Camera2Basic示例包含所有这些用于闪存操作的示例,作为后续示例。如果设备支持,它使用AE_MODE_AUTO_FLASH。