Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

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   MediaStreamError , com a descrição do erro que aconteceu, se o usuário não fizer nenhuma escolha, nenhum callback é retornado.

Sintaxe

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âmetros

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.

permissoes

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 }

callbackSucesso

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.
   };
},

callbackErro

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.

Compatibilidade de navegadores

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!

Funcionalidade Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Stream API  21webkit  20moz  Não suportado  12 ? 
Funcionalidade Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Stream API  Não suportado  Não suportado ?  12 Não suportado 

Atualmente, usar o WebRTC para acessar a câmera de vídeo é suportado nos navegadores Chrome, Opera e Firefox 20.

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: viktorRock, fscholz, srsaude
Última atualização por: viktorRock,