Skip to content

Instantly share code, notes, and snippets.

@victorbrndls
Created June 2, 2023 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victorbrndls/39c0af7a7a9fc3d45c466e5f3ee44c4c to your computer and use it in GitHub Desktop.
Save victorbrndls/39c0af7a7a9fc3d45c466e5f3ee44c4c to your computer and use it in GitHub Desktop.
@Composable
fun Camera(
onNoCameraAvailable: (Exception) -> Unit,
) {
val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current
val preview = Preview.Builder().build()
val previewView = remember { PreviewView(context) }
val cameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
LaunchedEffect(Unit) {
val cameraProvider = context.getCameraProvider()
cameraProvider.unbindAll()
try {
cameraProvider.bindToLifecycle(
lifecycleOwner,
cameraSelector,
preview,
)
preview.setSurfaceProvider(previewView.surfaceProvider)
} catch (e: IllegalArgumentException) {
onNoCameraAvailable(e)
}
}
AndroidView({ previewView }, modifier = Modifier.fillMaxSize())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment