|
|
@ -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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
});
|
|
|
|
});
|