4

我目前正在尝试使用 WebRTC api 并让一切都在本地工作。当我部署到时,surge.sh我无法访问该navigator.mediaDevices对象。我该如何解决这个问题?

以下代码行是我遇到问题的地方。

const stream = await navigator.mediaDevices.getDisplayMedia({video: {mediaSource: 'screen'}});

我收到以下错误消息:

TypeError: Cannot read property 'getDisplayMedia' of undefined
4

2 回答 2

4

你需要https。

navigator.mediaDevices现在仅在 Chrome 74、Firefox 68规范中的 SecureContext 中可用,这意味着该对象将在不安全的上下文 (http) 中丢失。

于 2019-06-17T17:47:10.420 回答
0

正如jib回答navigator.mediaDevices的那样,当网络服务器使用 HTTP 方案而不托管在 上时不可用localhost,但在 chrome/chromium 中除外:

$ chromium --unsafely-treat-insecure-origin-as-secure=http://WEBSERVER_FQDN:PORT_NUMBER

--unsafely-treat-insecure-origin-as-secure命令行选项允许放宽限制。当 HTTPS 尚未设置或您需要分析原始未加密的 HTTP 消息(即 wireshark)时,它对于开发/调试很有用。

于 2021-11-25T08:09:45.983 回答