首页 > 解决方案 > 在 Firefox 上使用 HTTPS 时强制 getUserMedia 重新提示

问题描述

我正在制作一个带有两个网络摄像头的简单应用程序,它只需要在最新的 Firefox 上运行。在本地它工作正常:

但是,当我将其上传到通过 HTTPS 为页面提供服务的服务器时,会记住来自第一个摄像头的访问,并且我只会获得两个相同的流。

有没有办法在 HTTPS 上强制重新提示,以便用户也可以选择另一个摄像头?

这是我的代码:

    function handleSuccess1(stream) {
      video1.srcObject = stream;

      navigator.mediaDevices.getUserMedia(constraints).
        then(handleSuccess2).catch(handleError);
    }

    function handleSuccess2(stream) {
      // this gets called automatically with the first stream
      // without re-prompting the user
      video2.srcObject = stream;
    }

    const constraints = {
      video: true
    };

    function handleError(error) {
      console.error(error);
    }

    navigator.mediaDevices.getUserMedia(constraints).
        then(handleSuccess1).catch(handleError);

标签: javascripthtmlwebcamnavigator

解决方案


用于navigator.mediaDevices.enumerateDevices()列出可用的摄像头和/或麦克风。

您可以在此处详细了解它:https ://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices


推荐阅读