0

MediaDevices: devicechange event在我的反应应用程序中使用。在本地机器上一切正常,但是当我在服务器(ubuntu)上部署应用程序时,它给了我以下错误 在此处输入图像描述

唯一的区别是本地机器上的操作系统我使用 windows 但服务器是 ubuntu。这是我的功能

export function useDevices() {
  const [devices, setDevices] = useState<MediaDeviceInfo[]>([]);

  useEffect(() => {
    const getDevices = () => navigator.mediaDevices.enumerateDevices().then(devices => setDevices(devices));
    navigator.mediaDevices.addEventListener('devicechange', getDevices);
    getDevices();

    return () => {
      navigator.mediaDevices.removeEventListener('devicechange', getDevices);
    };
  }, []);

  return devices;
}

提前致谢。

4

1 回答 1

0

我在这里找到了答案getUserMedia() 在 chrome 浏览器中不再支持 http:// (Unsecure Origin) ,它将适用于 https:// (Secure Origin)

出于测试目的,您可以使用 --unsafely-treat-insecure-origin-as- 运行 chrome,为此,您需要在 chrome 中访问此链接chrome://flags/#unsafely-treat-insecure-origin-as-secure并启用该选项,在文本区域中添加您的站点 URL,然后重新启动浏览器。现在您应该可以使用 getmediadevices 方法了。

于 2021-02-04T06:30:08.560 回答