--- title: navigator.getUserMedia slug: Web/API/Navigator/getUserMedia translation_of: Web/API/Navigator/getUserMedia ---
{{APIRef("Media Capture and Streams")}}{{deprecated_header}}
O método Navigator.getUserMedia() atualmente esta deprecated (obseleto), ele é responsavel por pedir a permissão do usuário para usar até 1 dispositivo de entrada de vídeo (como câmera, ou tela compartilhada) e até 1 dispositivo de entrada de áudio (como o microfone) como fonte para o stream de mídia (pode ser representado por uma instância MediaStream
).
Se o usuário der permissão, a MediaStream (o track do video e/ou audio) , é entregue ao callback de sucesso, se a permissão é negada, pode ser que não haja dispositivo compatível ou alguma condição de erro aconteceu, retornando o callback de erro com uma instancia do objeto {{domxref("MediaStreamError")}} , com a descrição do erro que aconteceu, se o usuário não fizer nenhuma escolha, nenhum callback é retornado.
navigator.getUserMedia ( permissoes, callbackSucesso, callbackErro );
Exemplo
Este é um exemplo de uso da função getUserMedia() com prefixos específicos dos navegadores.
navigator.getMedia = ( navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); navigator.getMedia ( // permissoes { video: true, audio: true }, // callbackSucesso function(localMediaStream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(localMediaStream); video.onloadedmetadata = function(e) { // Faz algo com o vídeo aqui. }; }, // callbackErro function(err) { console.log("O seguinte erro ocorreu: " + err); } );
parâmetro | Obrigatório/ Opcional |
Descrição |
---|---|---|
permissoes | Obrigatório | Os tipos de mídia habilitados no objeto LocalMediaStream enviado para a callbackSucesso. |
callbackSucesso | Obrigatório | A função da aplicação a ser invocada para receber o objeto LocalMediaStream. |
callbackErro | Opcional | A função a ser invocada na aplicação se a chamada a getUserMedia falhar. |
O parâmetro permissoes é um objeto MediaStreamConstraints com dois membros do tipo Boolean: video
e audio
. Estes membros descrevem os tipos de mídia habilitados no objeto LocalMediaStream. Pelo menos um destes membros deve ser especificado para que o argumento seja validado. Se um membro especificado não for suportado pelo navegador, a função getUserMedia invocará a callbackErro com o erro NOT_SUPPORTED_ERROR. Se o navegador não puder encontrar nenhuma fonte de mídia com o tipo especificado, a função getUserMedia invocará a callbackErro com o erro MANDATORY_UNSATISFIED_ERR.
Se o valor de um membro não estiver especificado no objeto, o valor padrão deste membro será falso. Veja como configurar o objeto permissoes para obter tanto áudio como vídeo:
{ video: true, audio: true }
A função getUserMedia invocará a função especificada em callbackSucesso com o objeto LocalMediaStream que contém a fonte de mídia. Você pode associar este objeto com o elemento apropriado e trabalhar com ele, como mostrado no exemplo a seguir:
function(localMediaStream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(localMediaStream); video.onloadedmetadata = function(e) { // Faz algo com o vídeo aqui. }; },
A função getUserMedia invocará a função especificada em callbackErro com um argumento code
. Os códigos de erro são descritos abaixo:
Erro | Descrição |
---|---|
PERMISSION_DENIED | O usuário não permitiu acesso a um dispositivo de mídia necessário para essa operação. |
NOT_SUPPORTED_ERROR | Uma mídia especificada não é suportada pelo navegador. |
MANDATORY_UNSATISFIED_ERROR | Nenhuma fonte de mídia do tipo especificado foi encontrada. |
Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Stream API | 21{{property_prefix("webkit")}} | 20{{property_prefix("moz")}} | {{CompatNo}} | 12 | {{CompatUnknown}} |
Funcionalidade | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Stream API | {{CompatNo}} | {{CompatNo}} | {{CompatUnknown}} | 12 | {{CompatNo}} |
Atualmente, usar o WebRTC para acessar a câmera de vídeo é suportado nos navegadores Chrome, Opera e Firefox 20.