Skip to content
Mic and webcam test

Compartilhe esta página

Guia de solução · Teste de microfone

Como corrigir «SecurityError» e «navigator.mediaDevices is undefined»

Os navegadores só permitem acesso ao microfone e à câmera em páginas seguras. Se o endereço começa com http:// em vez de https://, ou a página está em um quadro sem permissão, o navegador lança SecurityError ou esconde navigator.mediaDevices por completo, o que gera «TypeError: Cannot read properties of undefined (reading getUserMedia)». A solução é usar um endereço seguro.

Pressione um botão, permita o acesso e verificaremos seu dispositivo.

100% seguro. Todo o processamento acontece inteiramente no seu navegador. Seu áudio, vídeo e sinais do microfone nunca são enviados a um servidor nem gravados.

Lista de soluções rápidas

  1. 1Olhe a barra de endereço. A página deve começar com https:// ou ser localhost.
  2. 2Troque http:// por https:// no endereço ou reabra o site por um link seguro.
  3. 3Se estiver em um app ou visualização incorporada, abra a página em uma aba normal do navegador.
  4. 4Permita o microfone e a câmera para o site, recarregue e pressione Verificar novamente.
  5. 5Se você administra o site, instale um certificado e redirecione todo o tráfego http para https.

Por que os navegadores exigem contexto seguro

O microfone e a câmera são sensíveis. Os navegadores só os expõem em contexto seguro para que um invasor em uma rede compartilhada não troque a página e espione você. Páginas http simples, endereços de rede local como 192.168.x.x e muitas visualizações dentro de apps não se qualificam, embora localhost sim.

Uma política de permissões também pode bloquear o dispositivo para uma página dentro de um quadro. A página que hospeda o quadro deve liberar microfone e câmera.

Checklist para desenvolvedores

Sirva por HTTPS com certificado válido, teste o trabalho local em localhost e verifique window.isSecureContext antes de chamar getUserMedia. Em incorporações, defina allow="microphone; camera" no iframe e evite sandboxes que removam a permissão. O teste de microfone é servido por HTTPS para você comparar.

Quer um teste mais completo? Abra o teste de microfoneGratuito, roda no seu navegador, nada é enviado.

Perguntas frequentes

Perguntas frequentes

Por que navigator.mediaDevices é undefined?

A página não está em contexto seguro, então o navegador esconde a API de mídia. Abra por HTTPS ou em localhost.

Localhost conta como seguro?

Sim. Os navegadores tratam localhost como seguro, então você pode desenvolver sem certificado. Outros endereços locais exigem HTTPS.

O que é um SecurityError no getUserMedia?

O navegador recusou porque a página é insegura, foi carregada em um quadro restrito ou uma política proíbe o dispositivo.

Meus dados estão seguros em uma página http?

Evite usar microfone e câmera em páginas http. Use https para que a página não seja alterada em trânsito.

Continue lendo