CameraHelper
Helper CameraX centralisé.
Nécessite dans android/build.gradle.kts :
val cameraxVersion = "1.4.2"
implementation("androidx.camera:camera-core:$cameraxVersion")
implementation("androidx.camera:camera-camera2:$cameraxVersion")
implementation("androidx.camera:camera-lifecycle:$cameraxVersion")
implementation("androidx.camera:camera-view:$cameraxVersion")Content copied to clipboard
Permission requise : android.permission.CAMERA
Enregistrement Koin :
single { CameraHelper(androidContext()) }Content copied to clipboard
Utilisation :
// Démarrer un preview (depuis un Fragment/Activity)
cameraHelper.startPreview(
context = this,
lifecycleOwner = this,
previewView = binding.previewView,
config = CameraConfig.BackPhoto
)
// Capturer une photo
cameraHelper.capturePhoto(
outputFile = File(cacheDir, "photo_${System.currentTimeMillis()}.jpg")
) { result ->
when (result) {
is CaptureResult.Success -> showPhoto(result.file)
is CaptureResult.Error -> showError(result.message)
}
}
// Vérifier la disponibilité (suspend — appeler depuis une coroutine)
val hasBack = cameraHelper.hasCamera(context, CameraSelector.LENS_FACING_BACK)
// Libérer en onDestroy
cameraHelper.release()Content copied to clipboard
Functions
Link copied to clipboard
fun capturePhoto(outputFile: File, executor: Executor = ContextCompat.getMainExecutor(appContext), onResult: (CaptureResult) -> Unit)
Link copied to clipboard
Link copied to clipboard
fun startPreview(context: Context, lifecycleOwner: LifecycleOwner, previewView: PreviewView, config: CameraConfig = CameraConfig.BackPhoto, onReady: (Camera) -> Unit? = null)
Link copied to clipboard