Mediapipe Objectron Kotlin

问题描述

我想为 kotlin 制作 Objectron 但出现此错误 -> Logcat img

  1. 启动我的应用
  2. 获取消息框以访问我的相机
  3. 点击确定
  4. 在黑屏上跳转
  5. 黑屏 2-3 秒后应用崩溃

这就是我运行相机的方式:

override fun onResume() {
    super.onResume()
    converter = ExternalTextureConverter(eglManager!!.context)
    converter!!.setFlipY(FLIP_FRAMES_VERTICALLY)
    converter!!.setConsumer(processor)
    if (PermissionHelper.cameraPermissionsGranted(this)) {
        startCamera()
    }
}

private fun startCamera() {
    cameraHelper = CameraXPreviewHelper()
    cameraHelper!!.setonCameraStartedListener { surfaceTexture: SurfaceTexture? ->
        previewFrameTexture = surfaceTexture
        // Make the display view visible to start showing the preview. This triggers the
        // SurfaceHolder.Callback added to (the holder of) previewdisplayView.
        previewdisplayView!!.visibility = View.VISIBLE
    }
    cameraHelper!!.startCamera(this,CAMERA_FACING,/*surfaceTexture=*/null)
}

这是用于查看相机:

private fun setupPreviewdisplayView() {
    previewdisplayView!!.visibility = View.GONE
    val viewGroup = findViewById<ViewGroup>(R.id.preview_display_layout)
    viewGroup.addView(previewdisplayView)
    previewdisplayView!!
            .holder
            .addCallback(
                object : SurfaceHolder.Callback {
                    override fun surfaceCreated(holder: SurfaceHolder) {
                        processor!!.videoSurfaceOutput.setSurface(holder.surface)
                    }

                    override fun surfaceChanged(
                        holder: SurfaceHolder,format: Int,width: Int,height: Int
                    ) {
                        val viewSize = Size(width,height)
                        val displaySize =
                            cameraHelper!!.computedisplaySizefromViewSize(viewSize)
                        converter!!.setSurfaceTextureAndAttachToGLContext(
                            previewFrameTexture,displaySize.width,displaySize.height
                        )
                    }

                    override fun surfaceDestroyed(holder: SurfaceHolder) {
                        processor!!.videoSurfaceOutput.setSurface(null)
                    }
                })
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)