Да, мы можем записывать видео, используя 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 года