Esta tradução está incompleta. Por favor, ajude a traduzir 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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,