39 lines
No EOL
1.1 KiB
JavaScript
39 lines
No EOL
1.1 KiB
JavaScript
var attachMediaStream = function (stream, el, options) {
|
|
var URL = window.URL;
|
|
var opts = {
|
|
autoplay: true,
|
|
mirror: false,
|
|
muted: false
|
|
};
|
|
var element = el || document.createElement('video');
|
|
var item;
|
|
|
|
if (options) {
|
|
for (item in options) {
|
|
opts[item] = options[item];
|
|
}
|
|
}
|
|
|
|
if (opts.autoplay) element.autoplay = 'autoplay';
|
|
if (opts.muted) element.muted = true;
|
|
if (opts.mirror) {
|
|
['', 'moz', 'webkit', 'o', 'ms'].forEach(function (prefix) {
|
|
var styleName = prefix ? prefix + 'Transform' : 'transform';
|
|
element.style[styleName] = 'scaleX(-1)';
|
|
});
|
|
}
|
|
|
|
// this first one should work most everywhere now
|
|
// but we have a few fallbacks just in case.
|
|
if (URL && URL.createObjectURL) {
|
|
element.src = URL.createObjectURL(stream);
|
|
} else if (element.srcObject) {
|
|
element.srcObject = stream;
|
|
} else if (element.mozSrcObject) {
|
|
element.mozSrcObject = stream;
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
return element;
|
|
}; |