getUserMedia:如何在不刷新浏览器的情况下重置Safari和Edge中的已保存权限

时间:2018-08-22 09:56:03

标签: safari microsoft-edge getusermedia mediadevices

当我尝试使用getUserMedia api启动摄像头时,浏览器会缓存权限决定,对于Chrome和firefox,我们可以在地址栏或浏览器设置中更改(先前)摄像头权限,之后getUserMedia的工作方式如下:预期

但是在 Microsoft Edge或Mac Safari 浏览器中找不到任何这样的方式,在这些浏览器中,一旦权限被浏览器会话缓存而被拒绝,并且在刷新浏览器之前不会启动权限警报。

请尝试以下FutureBuilder

中的链接

只想知道,Edge和Safari中是否有任何设置可以重置权限而不刷新浏览器?这样,如果用户错误地关闭/拒绝了权限,则不必重新加载页面并重新开始。

var startVideo = function(){
  debugger;
  navigator.mediaDevices.getUserMedia({video: { facingMode: "user" }})
  .then(function(mediaStream) {
    var video = document.querySelector('#camera');
    video.srcObject = mediaStream;
    video.onloadedmetadata = function(e) {
      video.play();
    };
  })
  .catch(function(err) { alert(err.message); });
}

document.getElementById("startVideo").onclick = startVideo
  
section {
  background: #f2f2f2;
  text-align: left;
}
p {
  display: block;
  margin: 10px;
}
button {
  display: block;
  padding: 10px;
  margin: 20px auto;
  font-size: 22px;
}
video {
  border: 2px solid #f2f;
}
<section >
  <p>
  Click the button below to launch Camera, try on Edge and Safari as well. 
  </p>
  <p>
    <strong>NOTE:</strong> If you deny the permission the button doesnt launch the permission popup again in Edge and Safari.
  </p>
    <button id="startVideo" >
     start video
    </button>
    <video id="camera" autoplay="true" />
</section>

0 个答案:

没有答案