get-user-media-promise
v1.1.4
Published
Light-weight wrapper for the newer Promise-based MediaDevices.getUserMedia API with a fallback to navigator.getUserMedia (and it's prefixed variants)
Downloads
18,678
Maintainers
Readme
get-user-media-promise
Light-weight Ponyfill/Polyfill for navigator.mediaDevices.getUserMedia (the newer newer Promise-based API). Wraps the older callback-based navigator.getUserMedia when necessary.
Behaves as a ponyfill (doesn't touch globals) when used via browserify/webpack/etc. or as a polyfill (sets globals) when included as a standalone library.
Less than 0.5kb after minification and gzipping (about 5% of the size of the other getUserMedia shim).
Note: this will only work in web browsers, and only fairly current ones at that.
Additionally, this library does not attempt to reformat constraints for cross-browser support, so if you need advanced audio/video constraints, the other library may be a better choice.
Installation:
npm
npm install --save get-user-media-promise
Bower
bower install --save get-user-media-promise
Standalone
Download the latest release from GitHub.
Usage:
- With a bundler such as Require.js, Browserify, or WebPack: require() the module and it returns a
getUserMedia()
method that will always return a Promise or Promise-like object. - As a standalone library: when neither
define()
normodule
are defined, the module will go into polyfill mode, settingnavigator.mediaDevices.getUserMedia()
if that method is not already defined or doing nothing if it is.
Then:
var getUserMedia = require('get-user-media-promise'); // or navigator.mediaDevices.getUserMedia when used standalone
getUserMedia({audio: true, video: true})
.then(function(mediaStream) {
console.log(mediaStream);
})
.catch(function(error) {
console.log('error');
});
Check browser support ahead of time via the isSupported
property:
console.log(getUserMedia.isSupported);