2016年5月12日 星期四

Chrome getUserMedia error

 

在網頁程式使用 Navigator.getUserMedia() 要求取得用戶端的WebCam或麥克風時,若用戶端瀏覽器是Chrome會出現以下錯誤訊息:

Permissions have not been granted to use your camera and microphone, you need to allow the page access to your devices in order for the demo to work.
getUserMedia error: PermissionDeniedError

除非透過HTTPS,才能夠正常運作(Firefox則目前無此限制)。

根據Chome官方文件:

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

除非網站啟用SSL (HTTPS),否則想要使用以下功能都有相同的問題:

  • Geolocation — requires secure origins as of M50
  • Device motion / orientation
  • EME
  • getUserMedia
  • AppCache

若開發階段,無法使用HTTPS,那麼可以使用--unsafely-treat-insecure-origin-as-secure參數啟動Chrome,在命令提示字元輸入以下指令啟動chrome,並把example.com取代成伺服端網站位置

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --unsafely-treat-insecure-origin-as-secure="http://example.com/" --user-data-dir=/test/only/profile/dir

這樣就可以使用HTTP來測試了! 以下是測試WebCam範例:

image

沒有留言:

總網頁瀏覽量