【问题标题】:disable autofocus in android camerax (camera 2)在android camerax(相机2)中禁用自动对焦
【发布时间】:2021-03-15 06:36:50
【问题描述】:

我正在扫描条形码的项目中,所以我想禁用自动对焦以提高性能。我尝试了很多方法,但它根本不起作用。谁能给我一些帮助?谢谢。

【问题讨论】:

  • 您是否使用库进行条码扫描?如果有,是哪个?
  • 我正在使用 google mlkit 进行扫描

标签: android barcode-scanner android-camera2 android-camerax


【解决方案1】:

如果您真的想关闭自动对焦,您可以在 CameraX 上使用 Camera2CameraControl 类执行此操作。为此,您必须首先将需要的用例绑定到导致Camera 对象的生命周期,然后您可以使用该相机对象获取CameraControl 对象,然后使用它来实例化Camera2CameraControl会让你将焦点模式设置为CameraMetadata.CONTROL_AF_MODE_OFF

    val camera : Camera = cameraProvider.bindToLifecycle(
                        this,
                        cameraSelector,
                        imagePreview,
                        imageCapture,
                        imageAnalysis
                    )
    
    val cameraControl : CameraControl = camera.cameraControl
    val camera2CameraControl : Camera2CameraControl = Camera2CameraControl.from(cameraControl)
    
    //Then you can set the focus mode you need like this
    val captureRequestOptions = CaptureRequestOptions.Builder()
                .setCaptureRequestOption(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_OFF)
                .build()
            camera2CameraControl.captureRequestOptions = captureRequestOptions

这是在最新的 CameraX 的“1.0.0-rc03”版本上测试的。

【讨论】:

    【解决方案2】:

    我用

    disableAutoCancel()
    

    使用 cameraX 1.0.0。相机对焦一次然后保持锁定,自动对焦不会每隔 X 秒重新启动一次,所以像

        val autoFocusAction = FocusMeteringAction.Builder(
                        autoFocusPoint,
                        FocusMeteringAction.FLAG_AF or
                                FocusMeteringAction.FLAG_AE or
                                FocusMeteringAction.FLAG_AWB
                    ).apply {
                                disableAutoCancel()      
                        }
                    }.build()
        
    myCameraControl!!.startFocusAndMetering(autoFocusAction)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 2015-10-12
      • 2022-01-12
      • 1970-01-01
      • 2011-11-12
      • 2013-08-27
      相关资源
      最近更新 更多