Android 使用cameraX 1.0.0-beta11的视频录制不工作

Android 使用cameraX 1.0.0-beta11的视频录制不工作,android,camera,android-camera,video-capture,android-camerax,Android,Camera,Android Camera,Video Capture,Android Camerax,我试图用cameraX 1.0.0-beta11的最新版本录制视频,但录制过程中遇到了问题 启动摄像头和录制视频的代码片段。 @SuppressLint("RestrictedApi") private fun startCameraX() { val cameraProviderFuture = ProcessCameraProvider.getInstance(activity!!) cameraProviderFuture.ad

我试图用cameraX 1.0.0-beta11的最新版本录制视频,但录制过程中遇到了问题

启动摄像头和录制视频的代码片段。

@SuppressLint("RestrictedApi")
    private fun startCameraX() {
        val cameraProviderFuture = ProcessCameraProvider.getInstance(activity!!)

        cameraProviderFuture.addListener(Runnable {
            // Used to bind the lifecycle of cameras to the lifecycle owner
            val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()

            // Preview
            val preview = Preview.Builder()
                .build()
                .also {
                    it.setSurfaceProvider(previewView.surfaceProvider)
                }

              val videoCapture=VideoCapture.Builder().setVideoFrameRate(15).build()


            val videoFile = File(
                getOutputDirectory(),
                SimpleDateFormat(FILENAME_FORMAT, Locale.US
                ).format(System.currentTimeMillis()) + ".mp4")
            val outputOptions = VideoCapture.OutputFileOptions.Builder(videoFile).build()
            videoCapture.startRecording(outputOptions, ContextCompat.getMainExecutor(activity), object: VideoCapture.OnVideoSavedCallback{
                override fun onVideoSaved(outputFileResults: VideoCapture.OutputFileResults) {
                    Log.e("data","onVideoSaved")
                }

                override fun onError(videoCaptureError: Int, message: String, cause: Throwable?) {
                    Log.e("data", "onError->$message")
                }
            })

            // Select back camera as a default
            val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA

            try {
                // Unbind use cases before rebinding
                cameraProvider.unbindAll()

                // Bind use cases to camera
                cameraProvider.bindToLifecycle(
                    (this as LifecycleOwner), cameraSelector, preview, videoCapture)

            } catch(exc: Exception) {
                Log.e("TAG", "Use case binding failed", exc)
            }


        }, ContextCompat.getMainExecutor(activity))
    }
输出目录

private fun getOutputDirectory(): File {
            val mediaDir = activity?.externalMediaDirs?.firstOrNull()?.let {
                File(it, resources.getString(R.string.app_name)).apply { mkdirs() } }
            return if (mediaDir != null && mediaDir.exists())
                mediaDir else activity!!.filesDir
        }
错误-未绑定到摄像头[androidx.Camera.core]。VideoCapture@4bd02a4]

请帮忙!!
提前感谢。

您必须使用1.0.0-beta11版本,或者您可以使用较旧版本的CameraX库(例如1.0.0-beta01)?@Lincollincoll我必须使用最新版本的camXhere是一个很棒的CameraX图片和视频捕获示例。我在工作时在messenger中安装摄像头时正在使用它。但示例基于1.0.0-beta01。真的不知道新版本的变化。你可以试试。@Lincollicl谢谢你的链接,它对旧版本很有效,但我需要对最新版本进行操作。你有什么问题?你能分享一下细节吗?