From 7f2953c71139e1e8113b8a70ea68248e0d8cdee3 Mon Sep 17 00:00:00 2001 From: Hull Date: Thu, 8 Aug 2019 10:54:57 -0700 Subject: [PATCH 1/2] Call stop in beforeDestroy lifecycle hook --- src/webcam.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/webcam.vue b/src/webcam.vue index e90dbc5..e89bb9d 100644 --- a/src/webcam.vue +++ b/src/webcam.vue @@ -59,6 +59,9 @@ export default { mounted() { this.setupMedia(); }, + beforeDestroy(){ + this.stop(); + }, methods: { legacyGetUserMediaSupport() { return constraints => { From d4f479466bc1266598ba5ec271e20808f9e71cf6 Mon Sep 17 00:00:00 2001 From: Hull Date: Thu, 8 Aug 2019 14:26:03 -0700 Subject: [PATCH 2/2] Stop MediaStream created in TestMediaAccess --- src/webcam.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/webcam.vue b/src/webcam.vue index e89bb9d..bf87a5e 100644 --- a/src/webcam.vue +++ b/src/webcam.vue @@ -185,7 +185,14 @@ export default { navigator.mediaDevices .getUserMedia(constraints) - .then(stream => this.loadCameras()) + .then(stream => { + //Make sure to stop this MediaStream + let tracks = stream.getTracks(); + tracks.forEach(track => { + track.stop(); + }); + this.loadCameras(); + }) .catch(error => this.$emit("error", error)); }, /**