Release camera when stop is called

pull/9/head
Laszlo Radics 11 years ago
parent 460e406502
commit 655bc6453a

@ -3,6 +3,7 @@
define(function() { define(function() {
"use strict"; "use strict";
var streamRef;
/** /**
* Wraps browser-specific getUserMedia * Wraps browser-specific getUserMedia
@ -12,6 +13,7 @@ define(function() {
*/ */
function getUserMedia(constraints, success, failure) { function getUserMedia(constraints, success, failure) {
navigator.getUserMedia(constraints, function(stream) { navigator.getUserMedia(constraints, function(stream) {
streamRef = stream;
var videoSrc = (window.URL && window.URL.createObjectURL(stream)) || stream; var videoSrc = (window.URL && window.URL.createObjectURL(stream)) || stream;
success.apply(null, [videoSrc]); success.apply(null, [videoSrc]);
}, failure); }, failure);
@ -89,6 +91,12 @@ define(function() {
return { return {
request : function(video, callback) { request : function(video, callback) {
request(video, callback); request(video, callback);
},
release : function() {
var tracks = streamRef && streamRef.getVideoTracks();
if (tracks.length)
tracks[0].stop();
streamRef = null;
} }
}; };
}); });

@ -191,6 +191,9 @@ function(Code128Reader, EANReader, InputStream, ImageWrapper, BarcodeLocator, Ba
}, },
stop : function() { stop : function() {
_stopped = true; _stopped = true;
if (_config.inputStream.type == "LiveStream") {
CameraAccess.release();
}
}, },
onDetected : function(callback) { onDetected : function(callback) {
Events.subscribe("detected", callback); Events.subscribe("detected", callback);

Loading…
Cancel
Save