navigator.getUserMedia

Esta tradução está incompleta. Ajude atraduzir este artigo.

Pede a permissão do usuário para utilizar um dispositivo multimídia, como uma câmera ou um microfone. Se o usuário der permissão, a callbackSucesso é chamada na aplicação que originou o pedido, recebendo um objeto LocalMediaStream como argumento.

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

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: fscholz, srsaude
 Última atualização por: fscholz,