From 4f46baa329375cd1ac98bdc3260d57e9f88c5d66 Mon Sep 17 00:00:00 2001 From: Chirag Chhatrala Date: Tue, 11 Mar 2025 14:22:04 +0530 Subject: [PATCH] Barcode scanner issue fixed --- .../components/forms/components/CameraUpload.vue | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/client/components/forms/components/CameraUpload.vue b/client/components/forms/components/CameraUpload.vue index 7e981f06a..9aa65026d 100644 --- a/client/components/forms/components/CameraUpload.vue +++ b/client/components/forms/components/CameraUpload.vue @@ -165,6 +165,10 @@ export default { this.openCameraUpload() }, + beforeUnmount() { + this.cleanupCurrentStream() + }, + methods: { async cleanupCurrentStream() { if (this.quaggaInitialized) { @@ -183,6 +187,8 @@ export default { const webcamElement = document.getElementById("webcam") if (webcamElement && webcamElement.srcObject) { + const tracks = webcamElement.srcObject.getTracks() + tracks.forEach(track => track.stop()) webcamElement.srcObject = null } }, @@ -226,6 +232,7 @@ export default { } const stream = await navigator.mediaDevices.getUserMedia(constraints) + this.mediaStream = stream // Store the stream reference webcamElement.srcObject = stream this.webcam = new Webcam( @@ -289,12 +296,8 @@ export default { }, cancelCamera() { this.isCapturing = false - this.capturedImage = null - if (this.quaggaInitialized) { - Quagga.stop() - this.quaggaInitialized = false - } - this.webcam.stop() + this.capturedImage = null + this.cleanupCurrentStream() // Use the cleanup method this.$emit("stopWebcam") }, processCapturedImage() {