getUserMedia: как сбросить сохраненное разрешение в Safari и Edge без обновления браузера

Когда я пытаюсь запустить камеру с помощью getUserMedia api, решения о разрешениях кэшируются браузером. Для Chrome и firefox мы можем изменить (предыдущее) разрешение камеры из адресной строки или настроек браузера, после чего getUserMedia работает, как и ожидалось,

Однако не удалось найти такой способ в браузере Microsoft Edge или Mac Safari, где после отказа в разрешении кешируется сеанс браузера и не запускает предупреждение о разрешении до тех пор, пока браузер не будет обновлен.

Пожалуйста, попробуйте ссылку ниже в https://jsfiddle.net/g1d5f7mt/8/

Просто хочу знать, есть ли какие-либо настройки в 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 ответов

Другие вопросы по тегам