如何解决如何在场景较暗时自动打开手电筒进行视频录制?
我的应用显示预览,按下按钮即可开始视频录制。
我想要实现的是在视频录制开始后立即自动打开手电筒(手电筒模式)。
但是我找不到这样做的方法。在 Camera2 API 上,我们可以使用 FLASH_MODE_AUTO,它会在场景较暗时拍摄照片时使用手电筒,但这不适用于视频录制。 有这个 FLASH_MODE_TORCH 我可以用它来打开手电筒,就像我想要的那样,但没有 FLASH_MODE_TORCH_AUTO 在场景很暗时自动打开..
有一些答案使用设备的环境光传感器 (Sensor.TYPE_LIGHT) 来确定我们是否处于黑暗场景中,但是我认为使用前置环境光传感器而不是相机本身。这并不理想,因为环境光可能很低,但后置摄像头能够在不使用闪光灯的情况下调整曝光水平以获得足够好的图像质量。因此,理想情况下,如果相机提示“需要闪光灯”,则只有应用会激活 FLASH_MODE_TORCH。
由于应用程序显示预览,设备在按下按钮之前已经知道是否需要闪光灯,有没有办法确定预览时是否需要闪光灯?
解决方法
请在需要的地方试试下面的方法
下面是Camera API
items
下面是 Camera2 API
public void switchFlashOnMode() {
Camera.Parameters p = getCamera().getParameters();
try {
//p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
p.setFlashMode(Parameters.FLASH_MODE_AUTO);
getCamera().setParameters(p);
getCamera().startPreview();
isFlashTorch = true;
}catch (Exception e){
e.printStackTrace();
}
}
public void switchFlashOffMode() {
Camera.Parameters p = getCamera().getParameters();
try {
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
getCamera().setParameters(p);
Thread.sleep(200);
getCamera().stopPreview();
isFlashTorch = false;
}catch (Exception e){
e.printStackTrace();
}
}
希望能帮到你
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。