首页 > 解决方案 > 长按开始录制视频,同时在图像捕获UseCase android

问题描述

我必须在 android 中实现类似 Instagram 的视频录制功能。我启用了图像捕获 UseCase 并且长按我需要将用例更改为 videoCapture 并立即开始录制视频。请帮助我实现此功能。我已经处理了可以长按的情况。唯一给我的问题是,在更改视频捕获后,我需要开始录制。如果不是,它将在不更改用例的情况下录制视频时给我一个非法参数例外。这是一些可供参考的代码。

            shutterButton.setOnLongClickListener {
            longClickActive = true
            return@setOnLongClickListener true
        }

        shutterButton.setOnTouchListener { view, motionEvent ->
            when (motionEvent.action) {
                MotionEvent.ACTION_DOWN -> {
                    shutterGestureDetector.onTouchEvent(motionEvent)
                }
                MotionEvent.ACTION_UP -> {
                    shutterCountDownTimer?.cancel()
                    if (longClickActive) {
                        recordVideo() // Also stops the video recording
                        longClickActive = false
                    }

                }
            }
            return@setOnTouchListener true
        }
    }


}

private val shutterGestureDetector = GestureDetector(context,
    object : SimpleOnGestureListener() {
        override fun onSingleTapUp(e: MotionEvent): Boolean {
            clickPicture() // captures just an Image
            return true
        }

        override fun onLongPress(e: MotionEvent) {
            longClickActive = true
            startVideoCamera()
            recordVideo()
            shutterCountDownTimer = object : CountDownTimer(30000, 1000) {
                    override fun onTick(millisUntilFinished: Long) {
                        mViewBinding.shutterProgressBar.progress =
                            millisUntilFinished.toInt() * 100 / (5000 / 1000)
                    }

                    override fun onFinish() {
                        if (longClickActive) {
                            recordVideo()
                            longClickActive = false
                        }
                    }
                }.start()
            }
        }    
    })

请帮助我实现此功能,即使是零碎的。:)

标签: androidvideo-captureandroid-camera2android-cameraximage-capture

解决方案


推荐阅读