Невозможно переключить объектив CameraX во время записи.Возможно ли это сделать с помощью библиотеки JetX Jetpack?
Я могу переключать линзу, когда запись не ведется, но затем мне нужно отменить привязку всех () и выполнить повторную установку, чтобы во время записи это не сработало.
override fun onCreate(savedInstanceState: Bundle?) {
iv_switch_lens?.setOnClickListener {
lensFacing = if (CameraX.LensFacing.FRONT == lensFacing) {
CameraX.LensFacing.BACK
} else {
CameraX.LensFacing.FRONT
}
try {
CameraX.getCameraWithLensFacing(lensFacing)
CameraX.unbindAll()
startCamera()
} catch (exc: Exception) {
}
}
}
private fun startCamera() {
val metrics = DisplayMetrics().also { viewFinder.display.getRealMetrics(it) }
val screenAspectRatio = Rational(metrics.widthPixels, metrics.heightPixels)
Log.d(TAG, "Screen metrics: ${metrics.widthPixels} x ${metrics.heightPixels}")
val viewFinderConfig = PreviewConfig.Builder().apply {
setLensFacing(lensFacing)
setTargetAspectRatio(screenAspectRatio)
setTargetRotation(viewFinder.display.rotation)
}.build()
preview = AutoFitPreviewBuilder.build(viewFinderConfig, viewFinder)
val videoCaptureConfig = VideoCaptureConfig.Builder().apply {
setTargetAspectRatio(screenAspectRatio)
setLensFacing(lensFacing)
setTargetRotation(viewFinder.display.rotation)
}.build()
videoCapture = VideoCapture(videoCaptureConfig)
fab_take_action.setSafeOnClickListener {
cameraViewModel.onActionClicked()
}
CameraX.bindToLifecycle(
this, preview, videoCapture)
}