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>