首页 > 解决方案 > 如何使用 cameraX 在相机应用程序中实现 FlashToggle 按钮?

问题描述

如何使用 cameraX 在相机应用程序中实现 FlashToggle 按钮?手电筒应该与相机一起正常工作吗?

 @RequiresApi(Build.VERSION_CODES.M)
private fun toggleFlash()
{
    if(flash_toggle.isChecked)
    {
        try {
            cameraManager.setTorchMode(getCameraID, true)
        }
        catch(e: CameraAccessException){
            e.printStackTrace()
        }
    }
    else{
        try {
    cameraManager.setTorchMode(getCameraID,false)
        }
        catch(e: CameraAccessException){
            e.printStackTrace()
        }
    }
}

我用过这个,但它只在相机关闭时有效?

标签: androidandroid-cameraxflashlight

解决方案


如果您想在拍摄图像时使用闪光灯,您可以使用:

imageCapture.flashMode = ImageCapture.FLASH_MODE_ON用于闪光

imageCapture.flashMode = ImageCapture.FLASH_MODE_OFF用于闪断

imageCapture.flashMode = ImageCapture.FLASH_MODE_AUTO用于闪光灯自动

如果你想使用手电筒(手电筒),你可以使用:

// Enable torch
camera.cameraControl.enableTorch(true)

// Disable torch
camera.cameraControl.enableTorch(false)

仅在绑定用例后启用火炬。

要获取Camera实例,请使用:

camera = cameraProvider.bindToLifecycle(...)

推荐阅读