首页 > 解决方案 > CameraX Image 拍照慢

问题描述

我正在使用 CameraX

这是我的图像捕获:

 mImageCapture = ImageCapture.Builder()
            .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
            .setTargetAspectRatio(screenAspectRatio)
            .build()

图像捕捉监听器:

mImageCapture.takePicture(
                executor!!,
                object : ImageCapture.OnImageCapturedCallback() {


                    override fun onCaptureSuccess(image: ImageProxy) {
                        Log.d("AAAA", "Success")

                            val rotatedBitmap = bitmapHelper.rotateImage(
                                bitmapHelper.imageToBitmap(image = image.image!!),
                                image.imageInfo.rotationDegrees.toFloat()
                            )

                            runOnUiThread {
                                mImageView.setImageBitmap(rotatedBitmap)
                            }

                    }

                    override fun onError(
                        imageCaptureError: Int,
                        message: String,
                        cause: Throwable?
                    ) {
                        2
                        super.onError(imageCaptureError, message, cause)
                    }
                })

当我调用takePicture应用程序冻结时,仅在 3-4 秒后调用 onCaptureSuccess

我怎样才能使这个过程更快?

标签: androidandroid-cameraandroid-camerax

解决方案


我将此解决方案与stackoverflow中描述的冻结视图解决方案进行了比较,第二个解决方案比使用OnImageCapturedCallback. 这是如何冻结屏幕并显示ImageProxyusingImageAnalysis的示例,请查看以下示例github


推荐阅读