UNPKG

application-prototype

Version:
36 lines (26 loc) 1.26 kB
var promisifiedOldGUM = function(constraints, successCallback, errorCallback) { // First get ahold of getUserMedia, if present var getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia); // Some browsers just don't implement it - return a rejected promise with an error // to keep a consistent interface if(!getUserMedia) { return Promise.reject(new Error('getUserMedia is not implemented in this browser')); } // Otherwise, wrap the call to the old navigator.getUserMedia with a Promise return new Promise(function(successCallback, errorCallback) { getUserMedia.call(navigator, constraints, successCallback, errorCallback); }); }; // Older browsers might not implement mediaDevices at all, so we set an empty object first if(typeof(navigator.mediaDevices) === "undefined") { navigator.mediaDevices = {}; } // Some browsers partially implement mediaDevices. We can't just assign an object // with getUserMedia as it would overwrite existing properties. // Here, we will just add the getUserMedia property if it's missing. if(typeof(navigator.mediaDevices.getUserMedia) === "undefined") { navigator.mediaDevices.getUserMedia = promisifiedOldGUM; } module.exports = promisifiedOldGUM;