From 86e69e0b223a3b726e199be4fceef4dd240818b9 Mon Sep 17 00:00:00 2001 From: Sanchit2662 Date: Sat, 21 Feb 2026 07:14:53 +0530 Subject: [PATCH] Fix: stop media streams in p5.prototype.remove() by calling element.remove() Signed-off-by: Sanchit2662 --- src/core/main.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/main.js b/src/core/main.js index 0e19d75ec1..a8525ed085 100644 --- a/src/core/main.js +++ b/src/core/main.js @@ -619,6 +619,13 @@ class p5 { // remove DOM elements created by p5, and listeners for (const e of this._elements) { + // Stop active media streams (webcam/microphone) to release hardware + if (p5.MediaElement && e instanceof p5.MediaElement) { + e.stop(); + if (e.elt.srcObject !== null) { + e.elt.srcObject.getTracks().forEach(track => track.stop()); + } + } if (e.elt && e.elt.parentNode) { e.elt.parentNode.removeChild(e.elt); }