Ahmet Delibaş
01/20/2021, 7:15 AMfun bindPreview(
lifecycleOwner: LifecycleOwner,
previewView: PreviewView,
cameraProvider: ProcessCameraProvider,
currentCam: Int,
) {
val metrics = DisplayMetrics().also { previewView.display.getRealMetrics(it) }
val screenAspectRatio = aspectRatio(metrics.widthPixels, metrics.heightPixels)
val rotation = previewView.display.rotation
val builder = Preview.Builder()
.setTargetAspectRatio(screenAspectRatio)
.setTargetRotation(rotation)
val preview: Preview = builder
.build().also {
it.setSurfaceProvider(previewView.surfaceProvider)
}
val lensFacing = CameraSelector.LENS_FACING_FRONT
val cameraSelector: CameraSelector = CameraSelector.Builder().requireLensFacing(lensFacing).build()
val beautyPreviewExtender = BeautyPreviewExtender.create(builder)
if(beautyPreviewExtender.isExtensionAvailable(cameraSelector)) {
beautyPreviewExtender.enableExtension(cameraSelector)
}
try {
cameraProvider.unbindAll()
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
} catch (exception: Exception) {
Log.e(TAG, "Use case binding failed.", exception)
}
}
bindPreview is called by "AndroidView" in a Composable method. Camera works perfect, but beauty mode is not working. Does anybody know about it ?