navigator.mediaDevices undefined


問題引入:

navigator.mediaDevices undefined

場景:最近項目需求視頻連線,音頻對講

問題:navigator.mediaDevices調用返回為undefined

原因:

通過 MediaDevices.getUserMedia() 獲取用戶多媒體權限時,需要注意其只工作於以下三種環境:

  • localhost 域
  • 開啟了 HTTPS 的域
  • 使用 file:/// 協議打開的本地文件

如果當前文檔未安全加載,navigator.mediaDevices 將為 undefined,並且不能使用getUserMedia()。

解決方案:

  1. 創建HTTPS服務器,用HTTPS協議的方式發送請求。
  2. 在HTTP服務器上,可設置Chrome 的相應參數:

     a. 在chrome瀏覽器的地址欄中輸入: chrome://flags/#unsafely-treat-insecure-origin-as-secure,將該 flag 切換成 enable 狀態;
     b. 在輸入框中填寫需要開啟的域名或地址,如果有多個,則以逗號分隔;
     c. 重啟瀏覽器后生效。
  第二種方式只適合自己測試,本機瀏覽器使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM