MediaDevices.getUserMedia()

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);});