This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

fix: mirror image with front camera in android

+10 -3
+10 -3
posedetection/src/androidMain/kotlin/com.performancecoachlab/posedetection/camera/CameraView.android.kt
··· 21 21 import androidx.compose.runtime.remember 22 22 import androidx.compose.runtime.setValue 23 23 import androidx.compose.ui.Modifier 24 + import androidx.compose.ui.draw.scale 24 25 import androidx.compose.ui.graphics.ImageBitmap 25 26 import androidx.compose.ui.graphics.asAndroidBitmap 26 27 import androidx.compose.ui.graphics.asImageBitmap ··· 42 43 @OptIn(ExperimentalGetImage::class) 43 44 @Composable 44 45 actual fun CameraView( 45 - skeletonRepository: SkeletonRepository, drawSkeleton: Boolean, modifier: Modifier, frontCamera: Boolean 46 + skeletonRepository: SkeletonRepository, 47 + drawSkeleton: Boolean, 48 + modifier: Modifier, 49 + frontCamera: Boolean 46 50 ) { 47 51 var bitmap by remember { mutableStateOf<ImageBitmap?>(null) } 48 52 var skeleton by remember { mutableStateOf(Skeleton()) } ··· 56 60 val executor = remember { Executors.newSingleThreadExecutor() } 57 61 LaunchedEffect(lifecycleOwner) { 58 62 cameraController.bindToLifecycle(lifecycleOwner) 59 - cameraController.cameraSelector = if(frontCamera)DEFAULT_FRONT_CAMERA else DEFAULT_BACK_CAMERA 63 + cameraController.cameraSelector = 64 + if (frontCamera) DEFAULT_FRONT_CAMERA else DEFAULT_BACK_CAMERA 60 65 previewView.controller = cameraController 61 66 previewView.scaleType = PreviewView.ScaleType.FIT_CENTER 62 67 cameraController.setImageAnalysisAnalyzer(executor) { imageProxy -> ··· 93 98 Image( 94 99 it, 95 100 contentDescription = "video feed", 96 - modifier = Modifier.fillMaxSize(), 101 + modifier = Modifier 102 + .fillMaxSize() 103 + .scale(if (frontCamera) -1f else 1f, 1f), 97 104 contentScale = ContentScale.Crop 98 105 ) 99 106 }