在 Firefox 上使用 HTTPS 时强制 getUserMedia 重新提示

Force getUserMedia re-prompt when using HTTPS on Firefox

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

但是,当我将它上传到通过 HTTPS 提供页面的服务器时,第一个摄像头的访问被记住,我只得到两个相同的流。

有没有办法在 HTTPS 上强制重新提示,以便用户也可以 select 其他摄像头?

这是我的代码:

    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);

使用 navigator.mediaDevices.enumerateDevices() 列出可用的摄像头 and/or 个麦克风。

您可以在此处阅读更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices