UNPKG

enumerate-devices

Version:

A small project to normalize browser differences for enumerating media devices

57 lines (50 loc) 2.18 kB
!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.attachMediaStream=e():"undefined"!=typeof global?global.attachMediaStream=e():"undefined"!=typeof self&&(self.attachMediaStream=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ module.exports = function (stream, el, options) { var item; var URL = window.URL; var element = el; var opts = { autoplay: true, mirror: false, muted: false, audio: false, disableContextMenu: false }; if (options) { for (item in options) { opts[item] = options[item]; } } if (!element) { element = document.createElement(opts.audio ? 'audio' : 'video'); } else if (element.tagName.toLowerCase() === 'audio') { opts.audio = true; } if (opts.disableContextMenu) { element.oncontextmenu = function (e) { e.preventDefault(); }; } if (opts.autoplay) element.autoplay = 'autoplay'; if (opts.muted) element.muted = true; if (!opts.audio && opts.mirror) { ['', 'moz', 'webkit', 'o', 'ms'].forEach(function (prefix) { var styleName = prefix ? prefix + 'Transform' : 'transform'; element.style[styleName] = 'scaleX(-1)'; }); } if (typeof element.srcObject !== 'undefined') { element.srcObject = stream; } else if (typeof element.mozSrcObject !== 'undefined') { element.mozSrcObject = stream; } else if (URL && URL.createObjectURL) { element.src = URL.createObjectURL(stream); } else { return false; } return element; }; },{}]},{},[1]) (1) }); ;