Html Chrome getUserMedia未在本地请求权限

Html Chrome getUserMedia未在本地请求权限,html,google-chrome,Html,Google Chrome,我正在尝试在Chrome中使用navigator.getUserMedia;但是,在本地服务时,它不会请求许可(file:///whatever/index.html),但在JSFiddle()和其他站点上没有 有人知道原因吗?我是否需要以某种方式重置权限 以下是我在本地使用的内容: <html> <head></head> <body> <button id="btn">Start</button> <scr

我正在尝试在Chrome中使用navigator.getUserMedia;但是,在本地服务时,它不会请求许可(file:///whatever/index.html),但在JSFiddle()和其他站点上没有

有人知道原因吗?我是否需要以某种方式重置权限

以下是我在本地使用的内容:

<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>

开始
/*! jQuery v1.8.3 jQuery.com | jQuery.org/license*/
//JQuery在这里运行
navigator.getUserMedia=navigator.webkitGetUserMedia | | navigator.getUserMedia;
$(函数(){
$('#btn')。单击(函数(){
getUserMedia({audio:true},
函数(){
警惕(“成功”);
},
功能(err){
警报('fail:'+JSON.stringify(err));
}); }); });

Chrome在
文件://
URI上阻止了大量内容,但没有报告安全错误(例如)。您最好的选择是从本地Web服务器运行,如果您安装了Python,请尝试。

在打开chrome时,您可以从命令行使用
--allow file access from files
标志,以便能够从本地文件系统使用
getUserMedia

在OS X中如何执行命令行arg有点繁琐。它通常是这样的

"/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地址栏中,它会告诉您应该使用什么“命令行”调用。只需添加
——允许从文件访问文件。

尝试安装简单服务器(重量轻),只需单击“安装”,即可下载


安装后,请将应用程序转到您想要运行的页面。

我遇到了类似的问题,但与麦克风访问有关。 如果您通过file://(请注意,在Microsoft Edge和Firefox上,它通过file://)提供文件,则Chrome会阻止设备访问

我为Chrome找到了一个解决方案:

  • 在URL中打开一个类型chrome://version/
  • 复制命令行中“命令行”字段的值并附加 --允许从文件访问文件并运行它
  • 打开Chrome后,输入文件://url

  • 要始终像那样启动Chrome,请右键单击Chrome图标,然后单击属性。在快捷方式选项卡中,将2中的所有命令行参数附加到目标值。

    这是正确的:getUserMedia仅在从服务器上的文件运行时有效。它无法从文件://URL工作。您将获得一个
    权限\u DENIED:1
    错误,但这不是很直观@SamDutton:我提交了一份bug报告,要求提供更直观的错误信息:伙计们,我有WAMP,我有完全相同的问题!它在“真实”的网络上运行良好。。localhost,我收到错误消息I setup。有什么想法吗???为什么不允许你在自己的系统上使用摄像头?StupidMac用户:Python已经安装好了,所以这是一个非常简单快速的解决方案,比为一个简单的测试设置一个web服务器要快得多。我尝试过,但它似乎不起作用。我使用的是Chrome版本48.0.2564.116 m。