From bdad4e1acb576224287c3028fdf5940f1410ecda Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 16 Jan 2024 18:01:28 +0100 Subject: [PATCH] fix: Release `MediaActionSound` after playing (#2390) * fix: Release `MediaActionSound` after playing * Make it a bit more expressive --- .../camera/extensions/CameraCaptureSession+capture.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package/android/src/main/java/com/mrousavy/camera/extensions/CameraCaptureSession+capture.kt b/package/android/src/main/java/com/mrousavy/camera/extensions/CameraCaptureSession+capture.kt index c5c4fc4..4a6a323 100644 --- a/package/android/src/main/java/com/mrousavy/camera/extensions/CameraCaptureSession+capture.kt +++ b/package/android/src/main/java/com/mrousavy/camera/extensions/CameraCaptureSession+capture.kt @@ -14,6 +14,9 @@ import kotlin.coroutines.suspendCoroutine suspend fun CameraCaptureSession.capture(captureRequest: CaptureRequest, enableShutterSound: Boolean): TotalCaptureResult = suspendCoroutine { continuation -> + val shutterSound = if (enableShutterSound) MediaActionSound() else null + shutterSound?.load(MediaActionSound.SHUTTER_CLICK) + this.capture( captureRequest, object : CameraCaptureSession.CaptureCallback() { @@ -21,14 +24,14 @@ suspend fun CameraCaptureSession.capture(captureRequest: CaptureRequest, enableS super.onCaptureCompleted(session, request, result) continuation.resume(result) + shutterSound?.release() } override fun onCaptureStarted(session: CameraCaptureSession, request: CaptureRequest, timestamp: Long, frameNumber: Long) { super.onCaptureStarted(session, request, timestamp, frameNumber) if (enableShutterSound) { - val mediaActionSound = MediaActionSound() - mediaActionSound.play(MediaActionSound.SHUTTER_CLICK) + shutterSound?.play(MediaActionSound.SHUTTER_CLICK) } }