Skip to content
Mic and webcam test

Поделиться страницей

Руководство по исправлению · Тест микрофона

Как исправить «SecurityError» и «navigator.mediaDevices is undefined»

Браузеры разрешают доступ к микрофону и камере только на защищённых страницах. Если адрес начинается с http:// вместо https:// или страница находится во фрейме без разрешения, браузер выбрасывает SecurityError либо полностью скрывает navigator.mediaDevices, что приводит к «TypeError: Cannot read properties of undefined (reading getUserMedia)». Решение — использовать защищённый адрес.

Нажмите кнопку, разрешите доступ, и мы проверим ваше устройство.

100% безопасно. Вся обработка происходит целиком в вашем браузере. Ваше аудио, видео и сигналы микрофона никогда не загружаются на сервер и не записываются.

Чек-лист быстрого исправления

  1. 1Посмотрите на адресную строку. Страница должна начинаться с https:// или быть localhost.
  2. 2Замените http:// на https:// в адресе или заново откройте сайт по защищённой ссылке.
  3. 3Если вы внутри приложения или встроенного просмотра, откройте страницу в обычной вкладке браузера.
  4. 4Разрешите микрофон и камеру для сайта, перезагрузите страницу и снова нажмите «Проверить».
  5. 5Если вы управляете сайтом, установите сертификат и перенаправьте весь http-трафик на https.

Почему браузерам нужен защищённый контекст

Микрофон и камера — чувствительные устройства. Браузеры дают к ним доступ только в защищённом контексте, чтобы злоумышленник в общей сети не мог подменить страницу и следить за вами. Обычные http-страницы, адреса локальной сети вроде 192.168.x.x и многие встроенные в приложения просмотры не подходят, а localhost подходит.

Политика разрешений также может блокировать устройство для страницы во фрейме. Размещающая страница должна разрешить микрофон и камеру для этого фрейма.

Чек-лист разработчика

Отдавайте сайт по HTTPS с действительным сертификатом, проверяйте локальную работу на localhost и сверяйтесь с window.isSecureContext перед вызовом getUserMedia. Для встраиваний задайте allow="microphone; camera" в iframe и избегайте sandbox, удаляющих разрешение. Проверка микрофона отдаётся по HTTPS, так что можно сравнить.

Нужна более глубокая проверка? Откройте раздел «тест микрофона»Бесплатно, работает в вашем браузере, ничего не загружается.

FAQ

Частые вопросы

Почему navigator.mediaDevices равен undefined?

Страница не в защищённом контексте, поэтому браузер скрывает медиа-API. Откройте её по HTTPS или на localhost.

Считается ли localhost безопасным?

Да. Браузеры считают localhost защищённым, так что можно разрабатывать без сертификата. Другим локальным адресам нужен HTTPS.

Что такое SecurityError в getUserMedia?

Браузер отказал, потому что страница небезопасна, загружена в ограниченном фрейме или политика запрещает устройство.

Безопасны ли мои данные на http-странице?

Не используйте микрофон и камеру на http-страницах. Применяйте https, чтобы страницу нельзя было подменить по пути.

Читать дальше