如何替换Mozilla中的getUserMedia函数?

我可以使用getUserMedia()访问摄像机,但是它只能在本地使用。

我了解由于安全问题,它在Web服务器上不起作用。那么如何替换getUserMedia()呢?

 async function init() {
        try {
          // console.log("try");
          const stream = await navigator.mediaDevices.getUserMedia(constraints);
          handleSuccess(stream);
        } catch (e) {
          // console.log("catch");
          // console.log(e.name + ": " + e.message);
          errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`;
          //errorMsgElement.innerHTML = e.toString();
        }
      }

      // Success
      function handleSuccess(stream) {
        window.stream = stream;
        video.srcObject = stream;
      }


      // Load init
      init();
hash712 回答:如何替换Mozilla中的getUserMedia函数?

您需要做的就是在服务器上运行正确的HTTPS证书。完成此操作后,就可以开始运行了。

您不能“替换功能”以使其正常工作。

,

getUserMedia()在通过https服务的Javascript中使用时可以正常使用。正如您所发现的,当您不使用https时,它根本不起作用。

设置本地开发环境以使用https是一个臭名昭著的难题。它取决于开发计算机的操作系统以及所使用的浏览器(Firefox)。但是,仍然必须这样做。 https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/

,

正如其他人所说,如果不在本地运行,则需要在服务器上启用HTTPS。 getUserMedia()功能是在浏览器上获取视频流的一种方式,之所以如此工作是因为访问用户的麦克风和网络摄像头需要安全。

  

getUserMedia()是一项功能强大的功能,只能在安全的环境下使用   上下文在不安全的上下文中,navigator.mediaDevices是未定义的,   阻止访问getUserMedia()。简而言之,安全上下文是   使用HTTPS或file:/// URL方案加载的页面,或加载的页面   来自本地主机。

可在以下文档中找到:https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia

也许可以添加有关如何部署您的应用程序以及它可以用于哪种类型的应用程序的信息,但是如果它是单页应用程序,我可以推荐将这个buildpack与heroku一起使用:https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-static

该配置是一个JSON文件,非常简单,可让您启用HTTPS。

本文链接:https://www.f2er.com/3121552.html

大家都在问