Javascript — Pedir permissão para Acesso a Câmera e o Microfone

Guia passo a passo para pedir permissão de acesso à câmera e ao microfone do navegador em aplicações web

Javascript — Pedir permissão para Acesso a Câmera e o Microfone

Olá Gente!


Hoje iremos começar uma série de artigos sobre a gravação e transmissão de vídeos.

Porem, antes de qualquer coisa, precisamos entender como pedir a permissão, para o cliente liberar o acesso a sua câmera e seu microfone, e em caso negativo, identificar o que ocorreu.


A primeira coisa que precisamos entender é os requisitos:

  • Navegador compatível (Navegadores mais antigos não possuem este recurso)
  • SSL (É obrigatório a navegação via HTTPS)


A função que permite a solicitação de permissão muda de acordo com o navegador, porem, podemos simplificar, adicionado esta linha ao começo do código:

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;


Desta forma, a variável “navigator.getUserMedia” será populada com a função que for compatível no navegador.


Agora precisamos chamar a função “getUserMedia”, e tratar o “Then” e o “Catch”:


O que esta ocorrendo aqui?


Solicitamos a permissão de acesso ao “audio” e ao “video”:

{ audio: true, video: true }


Em caso de sucesso, será chamado o callback no ‘Then”:

then(function(stream) { alert(“Permissão Liberada!”); })


Em caso de falha, será chamado o callback de “catch”;

catch(function(err) { alert(err.name)); })


No caso de Erro, podemos tratar cada caso e orientar o cliente da forma correta:

  • NotAllowedError: Ocorre quando o cliente recusa o acesso a câmera e/ou vídeo (ou aos dois)
  • NotFoundError/DevicesNotFoundError: Ocorre quando não tem uma camera e/ou microfone
  • NotReadableError/TrackStartError: Ocorre quando existe outra aplicação utilizando a câmera e/ou microfone (Normalmente este erro indica um problema na câmera/microfone)


Por hoje é isto, queridos desenvolvedores! 👩‍💼
Até logo! 👋