navigator.mediaDevices 未定义

Mil*_*per 24 html javascript networking runtime-error webrtc

因此,我制作了一个 WebRTC 屏幕共享应用程序,作为 Chrome 远程桌面和其他常见远程桌面/游戏流服务的自托管替代方案。

我的困境不是navigator.mediaDevices undefinded。每当我通过某个file:///方案启动应用程序时,它都能完美运行;与Mozilla 文档中提到的相同https://。但问题是我并不想举办它,因为它有一些重大安全问题(小号)。那么我如何在192.168.XXX.XXXX没有它给出错误的情况下托管它呢?(我想将它托管在我的本地网络上,以便我可以在其他移动设备上对其进行测试。

Phi*_*cke 38

与功能的API一样getUserMediagetDisplayMedia并且enumerateDevices需要一个安全的情况下,获得这些从http:起源已在2019年的Chrome拆下运回

对于开发,最简单的解决方案可能是创建自签名证书。

- 更新 -

对于开发,最简单的解决方案是从本地主机运行,因为这被认为是安全的 - 请参阅https://blog.mozilla.org/webrtc/camera-microphone-require-https-in-firefox-68/https://w3c。 github.io/webappsec-secure-contexts/#localhost

评论来自:弗拉德·迪努列斯库

  • 实际上,对于开发来说,最简单的解决方案是从 http://localhost 运行,因为这被认为是安全的 - 请参阅 https://blog.mozilla.org/webrtc/camera-microphone-require-https-in-firefox-68/ 和https://w3c.github.io/webappsec-secure-contexts/#localhost (3认同)

小智 19

在 mozilla 开发人员中,about:config 设置为 truemedia.devices.insecure.enabledmedia.getusermedia.insecure.enabled

  • 在 Google Chrome 中,转到“chrome://flags/#unsafely-treat-insecure-origin-as-secure” (5认同)
  • 我接受的答案在技术上是正确的,但这对于快速原型制作非常有用。如果您无法像上面的答案一样在本地主机上托管,我会推荐这个。 (3认同)