Я использую метод webkitGetUserMedia (getUserMedia через adapter.js), чтобы получить камеру над микрофоном для webRTC в моем веб-приложении. Мой сервер не защищен (SSL-сертификат отсутствует). Все это работало нормально, пока я не начал получать сообщение об ошибке: "getUserMedia() больше не работает с небезопасным происхождением. Чтобы использовать эту функцию, вам следует переключить свое приложение на безопасное происхождение, например HTTPS. См. https://goo.gl/rStTGz для более подробной информации.
Я googled, и я увидел, что теперь в Chrome мне нужно использовать navigator.mediaDevices.getUserMedia(). Я использую Chrome 47.0.2526.80 м, и на этой странице https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia говорится, что этот метод должен поддерживаться для этой версии. Однако, когда я вызываю navigator.mediaDevices.getUserMedia, я получаю undefined. Поэтому теперь я не могу использовать любой метод в Chrome.
Кто-нибудь может помочь мне в этом вопросе. Благодаря
Согласно новому обновлению chrome (из Google Chrome 47), getUserMedia() больше не поддерживается в браузере Chrome по http://(Unsecure Origin), он будет работать на https://(Secure Origin)
В целях развития
1.localhost рассматривается как безопасное начало по HTTP, поэтому, если вы можете запустить свой сервер с локального хоста, вы должны проверить его на этом сервере.
2. Вы можете запустить хром с флагом --unsafely-treat-insecure-origin-as-secure="http://example.com"
(заменив "example.com" на исходное состояние, которое вы действительно хотите протестировать), который будет считать это происхождение безопасным для этого сеанса. Обратите внимание, что вам также необходимо включить --user-data-dir=/test/only/profile/dir
, чтобы создать новый тестовый профиль для работы флага.
getUserMedia
через http: //
Последнее обновление google-chrome заставляет getUserMedia работать только на безопасном происхождении. Существует способ заставить его работать, но только для развивающихся целей. Просто запустите chrome, используя cmd с вариантами thoses
- ненадежно лечи-небезопасные-происхождение-как-безопасный = "example.com"
и этот параметр использовать новый профиль пользователя
- пользователем данных DIR =/тест/только/профиль/реж
FYI getUserMedia работает над firefox до сих пор, но, на мой взгляд, он будет рекомендовать безопасное происхождение, например google-chrome.
Вы все равно можете использовать имя старого метода в Chrome 47, если вы используете https. Изменение имени ортогонально 47 новым требованиям безопасного происхождения. См. Другие ответы.
В отношении отсутствующих методов: navigator.mediaDevices.getUserMedia
был помещен обратно под флагом в Chrome, поэтому вы должны либо включить chrome://flags/#enable-experimental-web-platform-features
, либо используйте последнюю версию adapter.js, например здесь: https://stackoverflow.com/questions/34199436/webrtc-getusermedia-promise-api-support-in-chrome.