MediaDevices.getUserMedia() - отримує дозвіл на медіа пристрою (камера, мікрофон).
navigator.mediaDevices.getUserMedia(constraints).then(function(stream){
/* користувач дав дозвіл */
}).catch(function(err){
/* виникла помилка */
});
navigator - об'єкт navigator.
mediaDevices - об'єкт MediaDevices.
getUserMedia - метод для отримання дозволу на використання медіа пристрої (камера, мікрофон).
constraints - об'єкт MediaStreamConstraints який вказує тип пристрою до якого необхідно отримати дозвіл. Зазвичай вказується необхідність аудіо або відео: {audio: true, video: true}
getUserMedia() метод об'єкта MediaDevices який запитує дозвіл на медіа пристрої (камера, мікрофон), та отримує джерело медіа потік у вигляді об'єкту MediaStream.
Повертає Promise для обробки отриманого дозволу. Якщо користувач дав дозвіл тоді виконується вказана функція передана у then, яка отримує параметр об'єкт MediaStream.
За умов політики безпеки деякі браузери дозволяють доступ до медіа потоку лише для протоколу https.
У браузері Chrome якщо протокол не HTTPS (захищений SSL) тоді виникне помилка: "Cannot read property 'getUserMedia' of undefined". Тому рекомендовано використовувати протокол HTTPS для сайту з використанням getUserMedia.
navigator.mediaDevices.getUserMedia({video:true}).then( function(media){ alert(media); } ).catch(function(er){alert(er);});
Приклад отримання відео і звуку з камери:
<video id="video"></video>
navigator.mediaDevices.getUserMedia({video:true,audio:true}).then(function(stream){
var video=document.getElementById('video');
video.srcObject=stream;
video.play();
}).catch(function(er){alert(er.message);});
Приклад відтворення звуку з мікрофона:
navigator.mediaDevices.getUserMedia({audio:{autoGainControl:false, echoCancellation:false, sampleSize:{min:128, max:1024, ideal:512, exact:256}, volume:0.8}}).then(function(stream){
var audio=new Audio();
audio.srcObject=stream;
audio.play();
}).catch(function(e){alert(e);});