--- 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.