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

时间:2018-06-05 18:36:56

标签: javascript html5 webcam navigator

我正在制作一个简单的应用程序,其中两个网络摄像头只需要在最新的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);

1 个答案:

答案 0 :(得分:1)

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

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