cameraView.startRecording() начинает запись с задержкой
Моё приложение записывает видео с реакцией пользователей на одинаковый для всех видеопоток, а потом эти видео должны сливаться в одно видео. На словах понять сложно, проще посмотреть 10 секунд https://www.youtube.com/watch?v=DpXh2BAgEPg.
Использую camerax. Вызываю recordVideo() и начинаю рендеринг.
val cameraView: CameraView = CameraView(context)
//..
private fun recordVideo(videoRecordingFilePath: String) {
cameraView.startRecording(File(videoRecordingFilePath), ContextCompat.getMainExecutor(context), object : VideoCapture.OnVideoSavedCallback {
override fun onVideoSaved(file: File) {
Toast.makeText(context, "Recording Saved in $videoRecordingFilePath", Toast.LENGTH_LONG).show()
Log.d(TAG, "onVideoSaved $videoRecordingFilePath")
}
override fun onError(videoCaptureError: Int, message: String, cause: Throwable?) {
Log.e(TAG, "onError $videoCaptureError $message")
}
})
}
Проблема в том, что запись начинается с задержкой, притом разной, и на разных устройствах она очень сильно отличается. Собственно проблема - как это всё синхронизировать. Был бы какой-нибудь колбэк типа recordStarted(), было бы всё отлично, но я ничего похожего не нашёл.