Можно ли записывать видео с CameraX (Android Jetpack)? - PullRequest
1 голос
/ 09 мая 2019

Google выпустил новую библиотеку CameraX в составе Jetpack. Это отлично смотрится для фотографирования, но мой вариант использования также требует создания видео. Я попытался найти это, но ничего не смог найти.

Итак, можно ли записывать видео с помощью библиотеки CameraX Jetpack?

1 Ответ

7 голосов
/ 09 мая 2019

Да, мы можем записывать видео, используя CameraX.Я попытался реализовать себя с помощью демоверсии Github для CameraX .Ниже приведен код, который может вам помочь.

Конфигурация для видео в CameraX:

val videoCaptureConfig = VideoCaptureConfig.Builder().apply {
    setLensFacing(lensFacing)
    setTargetAspectRatio(screenAspectRatio)
    setTargetRotation(viewFinder.display.rotation)

}.build()

videoCapture = VideoCapture(videoCaptureConfig)

CameraX.bindToLifecycle(this, preview, imageCapture, videoCapture)

Чтобы начать запись видео:

videoCapture?.startRecording(videoFile, object : VideoCapture.OnVideoSavedListener {
        override fun onVideoSaved(file: File?) {
            Log.i(javaClass.simpleName, "Video File : $file")
        }

        override fun onError(useCaseError: VideoCapture.UseCaseError?, message: String?, cause: Throwable?) {
            Log.i(javaClass.simpleName, "Video Error: $message")
        }

    })

Чтобы остановить запись видео:

videoCapture?.stopRecording()

То же самое, что я упоминал в комментарии к выпуску Github: https://github.com/android/camera/issues/2#issuecomment-490773932

Примечания: В коде может отличаться реализация видеозаписи с использованием CameraX.Поскольку этот код был разработан мной без какой-либо другой ссылки, а не с Github Demo.

Пожалуйста, проверьте важный комментарий Oscar Wahltinez к этому ответу по состоянию на 14 мая 2019 года

...