Turn off webcam/camera after using getUserMedia [duplicate] Turn off webcam/camera after using getUserMedia [duplicate] javascript javascript

Turn off webcam/camera after using getUserMedia [duplicate]


localstream.stop() has been depreciated and no longer works. See this question and answer:Stop/Close webcam which is opened by navigator.getUserMedia

And this link:

https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=en#stop-ended-and-active

Essentially you change localstream.stop() to localstream.getTracks()[0].stop();

Here's the source in the question updated:

<html><head><script>var console = { log: function(msg) { div.innerHTML += "<p>" + msg + "</p>"; } };var localstream;if (navigator.mediaDevices.getUserMedia !== null) {  var options = {     video:true,     audio:false   };    navigator.webkitGetUserMedia(options, function(stream) {     vid.src = window.URL.createObjectURL(stream);    localstream = stream;    vid.play();    console.log("streaming");  }, function(e) {     console.log("background error : " + e.name);  }); }function vidOff() {  //clearInterval(theDrawLoop);  //ExtensionData.vidStatus = 'off';  vid.pause();  vid.src = "";  localstream.getTracks()[0].stop();  console.log("Vid off");}</script></head><body><video id="vid" height="120" width="160" muted="muted" autoplay></video><br><button onclick="vidOff()">vidOff!</button><br><div id="div"></div></body></html>


The code above works - as shown by @jib here using the above code:

function vidOff() {    vid.pause();    vid.src = "";    localstream.stop();}

The problem is to do with it being a persistent background page. I'm swapping over to event pages for the Chrome extension as a work around.