Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


A polyfill to use the Promise-flavoured, mediaDevices based version of getUserMedia, in browsers that support some sort of getUserMedia.

With this polyfill you can access getUserMedia like this:

navigator.mediaDevices.getUserMedia({ video: true, audio: true }).then(function(stream) {

}, function(error) {


versus the old version:

navigator.getUserMedia({ video: true, audio: true }, function(stream) {

}, function(error) {


Look at index.html and main.js in the example folder to see how to use the result of the stream to display a video on screen when successful, or how to detect errors and showing a message to the user.

Here is a list of browser support for WebRTC / getUserMedia.

Using the polyfill

Always make sure it's included before anything else that uses getUserMedia in your code.

Option A: include the script

Download and save the polyfill code and include it in your own code:

	// ... more stuff
	<script src="mediaDevices-getUserMedia-polyfill.js" defer></script>
	<script src="other-code-using-getUserMedia.js" defer></script>
	// ... maybe more stuff

Option B: use npm

If you prefer to use npm to manage your dependencies:

Install the polyfill:

npm install --save md-gum-polyfill

And load it with require before using code that uses getUserMedia:


// ... code using getUserMedia...


A polyfill to use the Promise-flavoured, `mediaDevices` based version of getUserMedia, in browsers that support *some sort* of getUserMedia.







No releases published


No packages published