Ответ 1
Chrome блокирует много вещей на URI file:///
, не сообщая об ошибке безопасности (например, Geolocation). Ваш лучший вариант - запустить с локального веб-сервера, если у вас установлен Python, попробуйте SimpleHTTPServer.
Я пытаюсь поиграть с navigator.getUserMedia в Chrome; однако он не запрашивает разрешения при обслуживании локально (файл:///whatever/index.html), но делает это на JSFiddle (http://jsfiddle.net/EBsvq/) и других сайтах.
Кто-нибудь знает причину этого? Мне нужно как-то reset мои разрешения?
Вот что я использую локально:
<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>
Chrome блокирует много вещей на URI file:///
, не сообщая об ошибке безопасности (например, Geolocation). Ваш лучший вариант - запустить с локального веб-сервера, если у вас установлен Python, попробуйте SimpleHTTPServer.
Вы можете использовать флаг --allow-file-access-from-files
из командной строки при открытии хром, чтобы иметь возможность использовать getUserMedia
из локальной файловой системы.
Я столкнулся с подобной проблемой, но связан с доступом к микрофону. Chrome блокирует доступ к устройству, если вы обслуживаете файл через файл://(обратите внимание, что на Microsoft Edge и Firefox он работал через файл:://).
Одно из решений, которое я нашел для Chrome:
Для запуска Chrome всегда так, щелкните правой кнопкой мыши значок Chrome и выберите свойства. На вкладке "Ярлык" добавьте к целевому значению все параметры командной строки из 2.
Немного нетривиально, как выполнить командную строку arg в OS X. Обычно это будет выглядеть как
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files
Если вы такой урод, как я, и поместите свои приложения в ~/Applications
, тогда это будет
"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files
Если ни один из них не работает, введите chrome://version
в адресную строку Chrome, и он расскажет вам, что вы используете для вызова "командной строки". Просто добавьте --allow-file-access-from-files
к этому.
Попробуйте установить простой сервер (легкий вес), установить один клик, можно загрузить здесь
Как только он будет установлен, обратитесь к приложению на страницу, которую вы хотите запустить.