【问题标题】:CameraX Image take picture slowCameraX Image 拍照慢
【发布时间】:2020-06-06 15:32:53
【问题描述】:

我正在使用 CameraX

这是我的截图:

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

ImageCaptureListener:

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

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

【问题讨论】:

  • 我认为您需要致电image.close()。试试吧,在runOnUiThread之前
  • 嘿@Rasul 你有没有发现为什么它很慢。我的意思是我没有文件操作之类的东西,仍然只有 cameraX 需要大约 1.5 秒
  • 你好 Rasul Agakishiyev,你找到解决这个问题的方法了吗?可以分享给我或有需要的人吗?
  • 我认为在你的情况下旋转位图会导致延迟

标签: android android-camera android-camerax


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2023-03-25
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多