Руководство по исправлению · Проверка веб-камеры
Как исправить «OverconstrainedError» для камеры или микрофона
OverconstrainedError означает, что страница запросила настройки, которые ваше устройство дать не может, например точное разрешение, частоту кадров или конкретный ID устройства, которого больше нет. Устройство работает, но запрос был слишком строгим. Посетитель исправляет это выбором другого устройства или сбросом страницы. Разработчик ослабляет ограничения.
Чек-лист быстрого исправления
- 1Перезагрузите страницу и выберите камеру или микрофон по умолчанию вместо конкретного.
- 2Отключите и снова подключите устройство, затем обновите страницу, чтобы браузер заново его перечислил.
- 3Выберите другую камеру или микрофон из списка устройств и проверьте снова.
- 4Обновите браузер: старые версии иначе сообщают об ограничениях разрешения.
- 5Если вы разрабатываете страницу, используйте значения ideal для ширины, высоты и частоты кадров вместо exact.
Что такое «ограничения»
Страница может передать в getUserMedia ограничения: width, height, frameRate, facingMode, deviceId и параметры звука. Слова exact и min делают значение обязательным. Если ни одно подключённое устройство не может выполнить обязательное значение, браузер останавливается с OverconstrainedError и указывает в ошибке, какая настройка не прошла.
Типичные причины: запрос 1920 × 1080 у камеры 720p, запрос facingMode environment на ноутбуке с одной камерой или повторное использование deviceId, сохранённого до отключения устройства.
Как разработчикам с этим работать
Предпочитайте ideal вместо exact, читайте свойство constraint ошибки, чтобы увидеть, какая настройка не прошла, и повторяйте один раз с более простыми ограничениями. Показывайте пользователю выбор устройства вместо молчаливого сбоя. Проверка веб-камеры показывает реальные разрешение и частоту кадров камеры, так что вы видите, что возможно.
FAQ
Частые вопросы
Что означает OverconstrainedError?
Камера или микрофон не смогли выполнить настройку, которую потребовала страница, например точный размер или конкретное устройство, которое больше не подключено.
Почему ошибка появляется после отключения USB-камеры?
Страница может по-прежнему запрашивать эту камеру по сохранённому ID. Выберите другое устройство или перезагрузите страницу, чтобы она запросила устройство по умолчанию.
OverconstrainedError — это проблема с разрешением?
Нет. Ошибки разрешений — это NotAllowedError. Эта связана с неподдерживаемыми настройками, так что запрос разрешения может быть ни при чём.
Как узнать, что поддерживает моя камера?
Запустите проверку веб-камеры и посмотрите разрешение и частоту кадров рядом с живым изображением.