Próbuję odtwarzać z navigator.getUserMedia w przeglądarce Chrome; jednak nie żąda uprawnień, gdy jest serwowany lokalnie (file: ///whatever/index.html), ale robi to na JSFiddle (http://jsfiddle.net/EBsvq/) i innych witrynach.Chrome getUserMedia Nie wymaga uprawnień Lokalnie
Czy ktoś wie, dlaczego? Czy muszę jakoś zresetować moje uprawnienia?
Oto co używam lokalnie:
<html>
<head></head>
<body>
<button id="btn">Start</button>
<script type="text/javascript">
/*! jQuery v1.8.3 jquery.com | jquery.org/license */
//JQuery goes here
</script>
<script type="text/javascript">
navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.getUserMedia;
$(function(){
$('#btn').click(function(){
navigator.getUserMedia({audio: true},
function(){
alert('success');
},
function (err) {
alert('fail: ' + JSON.stringify(err));
}); }); });
</script>
</body>
</html>
To jest poprawne: getUserMedia działa tylko wtedy, gdy jest uruchamiany z pliku na serwerze. Nie będzie działać z adresu URL pliku: //. Otrzymasz błąd "PERMISSION_DENIED: 1", ale to nie jest zbyt intuicyjne! –
@SamDutton: Zgłosiłem zgłoszenie błędu z prośbą o bardziej intuicyjny komunikat o błędzie: https://code.google.com/p/chromium/issues/detail?id=257104 – Gili
@Gili: oznaczono gwiazdką! –