取消getUserMedia请求

Vip*_*ley 9 javascript html5 getusermedia

我的应用程序中有一个模态对话框,用于getUserMedia显示用户摄像头的视频.这会导致出现"拒绝/允许"栏.假设用户在单击"拒绝"或"允许"之前关闭对话框.即使使用它的元素已经消失,该条仍然存在.

有没有办法通知浏览器它可以隐藏权限请求,即使用户从未与它进行过交互?

cra*_*com -4

我想你想要这样的东西:

    $("body").on('click', "#stop_button", function(e) {
        e.preventDefault();
        mediaStream.stop();
     });
Run Code Online (Sandbox Code Playgroud)

mediaStream 是我调用 getUserMedia 时定义的全局变量

        navigator.getUserMedia(
            {
              video: true,
              audio: false
            },
            function(stream) {
              if (navigator.mozGetUserMedia) {
                video.mozSrcObject = stream;
              } else {
                var url = window.URL || window.webkitURL;
                video.src = url ? url.createObjectURL(stream) : stream;
              }
              mediaStream = stream;
              video.play();
            },
            function(error) {
              console.log("ERROR: " + error);
            }
        );
Run Code Online (Sandbox Code Playgroud)

因此,在您的示例中,当对话框关闭时,您将在媒体流上调用 stop() - 您必须为此创建一个事件处理程序。

查看有关 getUserMedia 的教程,了解完整的示例和现场演示。

  • 我手头没有计算机可供测试,但我相信,如果用户尚未允许/拒绝,这不会使权限横幅消失。至少,几个月前我尝试这样做时是这样。 (3认同)