--- title: MediaDevices slug: Web/API/MediaDevices translation_of: Web/API/MediaDevices ---
As interfaces MediaDevices proporcionam accesso aos dispositivos de entrada de midia conectados, como câmeras e microfones, bem como compartilhamento de tela. Essencialmente, isso te permite obter acesso a qualquer mídia gerada pelo hardware.
As mesmas propriedades de {{domxref("EventTarget")}}.
MediaDevices quando uma entrada de mídia ou dispositivo de saída é conectado ou removido do computador do usuário.Mesmos métodos de {{domxref("EventTarget")}}.
'use strict';
// Coloca as variáveis no escopo global para torná-las disponível para o Console do navegador.
var video = document.querySelector('video');
var constraints = window.constraints = {
audio: false,
video: true
};
var errorElement = document.querySelector('#errorMsg');
navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
var videoTracks = stream.getVideoTracks();
console.log('Got stream with constraints:', constraints);
console.log('Using video device: ' + videoTracks[0].label);
stream.onremovetrack = function() {
console.log('Stream ended');
};
window.stream = stream; // torna as variáveis disponíveis para o Console do navegador
video.srcObject = stream;
})
.catch(function(error) {
if (error.name === 'ConstraintNotSatisfiedError') {
errorMsg('A resolução ' + constraints.video.width.exact + 'x' +
constraints.video.width.exact + ' px não é suportada pelo seu dispositivo.');
} else if (error.name === 'PermissionDeniedError') {
errorMsg('As permissões para usar sua câmera e microfone não foram fornecidas. ' +
'Você precisa permitir o acesso da página aos seus dispositivos para ' +
'que a demo funcione.');
}
errorMsg('getUserMedia error: ' + error.name, error);
});
function errorMsg(msg, error) {
errorElement.innerHTML += '<p>' + msg + '</p>';
if (typeof error !== 'undefined') {
console.error(error);
}
}
| Especificação | Status | Comentário |
|---|---|---|
| {{SpecName('Media Capture', '#mediadevices', 'MediaDevices')}} | {{Spec2('Media Capture')}} | Definição inicial |
| Recurso | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Suporte Básico | {{CompatChrome(47)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("36.0")}} | {{CompatNo}} | {{CompatOpera(30)}} | {{CompatNo}} |
enumerateDevices() |
{{CompatChrome(51)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatOpera(38)}} | {{CompatNo}} |
getSupportedConstraints() |
{{CompatChrome(53)}} | {{CompatUnknown}} | {{CompatGeckoDesktop(44)}} | {{CompatNo}} | {{CompatOpera(40)}} | {{CompatNo}} |
Eventos ondevicechange e devicechange |
{{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop(51)}}[1] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} |
| Captura de áudio estéreo | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop(55)}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} |
| Recurso | Android Webview | Chrome para Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome para Android |
|---|---|---|---|---|---|---|---|---|---|
| Suporte Básico | {{CompatChrome(47)}} | {{CompatChrome(47)}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("36.0")}} | 2.2 | {{CompatNo}} | {{CompatOperaMobile(30)}} | {{CompatNo}} | {{CompatNo}} |
enumerateDevices() |
{{CompatChrome(51)}} | {{CompatChrome(51)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatOperaMobile(38)}} | {{CompatNo}} | {{CompatNo}} |
getSupportedConstraints() |
{{CompatChrome(53)}} | {{CompatChrome(52)}} | {{CompatUnknown}} | {{CompatGeckoMobile(50)}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatOperaMobile(40)}} | {{CompatNo}} | {{CompatNo}} |
Eventos ondevicechange e devicechange |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile(51)}}[1] | {{CompatUnknown}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatNo}} |
| Captura de áudio estéreo | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
[1] O suporte para o evento devicechange e para {{domxref("MediaDevices.ondevicechange")}} começou no Firefox 51, mas somente pra Mac, e desabilitado por padrão. Ele pode ser habilitado configurando a preferência media.ondevicechange.enabled para true. O suporte para esse evendo foi adicionado para Linux e Windows — ativado por padrão — a partir do Firefox 52.
MediaDevices que pode ser usado para acessar dispositivos.