Javascript 谷歌浏览器&x27;s webkitGetUserMedia-如果用户忽略该对话框怎么办?

Javascript 谷歌浏览器&x27;s webkitGetUserMedia-如果用户忽略该对话框怎么办?,javascript,google-chrome,getusermedia,Javascript,Google Chrome,Getusermedia,因此,navigator.webkitGetUserMedia的标准使用方式如下: function success() { console.log('User accepted'); } function deny() { console.log('User rejected'); } navigator.webkitGetUserMedia({video: true, audio: true}, success, deny); 我正在开发的网站绝对需要使用用户的网络摄像

因此,navigator.webkitGetUserMedia的标准使用方式如下:

function success() {
    console.log('User accepted');
}

function deny() {
    console.log('User rejected');
}

navigator.webkitGetUserMedia({video: true, audio: true}, success, deny);
我正在开发的网站绝对需要使用用户的网络摄像头和麦克风(事实上,使用Flash,但现在似乎已经通过了这个API),所以我正在尽一切努力确保用户始终知道他们需要点击什么才能使网站正常工作

  • 如果两个函数都未调用,则假定对话框正在显示,并向用户显示说明
  • 如果调用了deny,请说明需要访问网络摄像头,并向他们显示他们可以单击Chrome URL栏中的摄像头图标来更改他们的决定
  • 当然,如果调用success,则用户已接受,并按正常方式继续
这是踢球者;你可以将上面的Javascript粘贴到任何你喜欢的网站上(在Chrome中)。如果用户导航到新网页,或刷新当前网页而不接受、拒绝或取消下拉列表,则他们将不会再次看到浏览器会话当前域的权限对话框

再次调用
navigator.webkitGetUserMedia(…)
不显示权限对话框,甚至相机图标也不会出现在URL栏中。控制台甚至不记录“用户已拒绝”。此外,对于许多用户来说,这个下拉列表很容易被意外忽略。唯一可用的修复方法是完全关闭浏览器并重新打开它(或者,手动浏览复杂的设置菜单,我们不想强迫用户进入这些菜单)


我可以向这里的任何人确认这是否是“不知何故”的意图,或者我是否遗漏了什么吗?

这似乎是一个已知的错误

:mic/cam权限上的信息栏弹出导致意外权限状态;导致无法恢复的重新加载权限缺失

目前在评论线程中有关于该bug的消息,因此至少您知道他们正在努力修复该问题。不幸的是,在这段时间内,对于这个bug似乎没有任何真正的解决办法


值得一提的是:如果关闭选项卡,然后重新打开url,这似乎会迫使权限对话框再次显示。我知道这不是一个真正的解决方案,但至少比关闭整个浏览器要好(我想这是你到目前为止一直在做的事情)。

这似乎对我有效(Windows Vista上的Chrome 27)。如果我刷新页面,权限栏会再次弹出。如果我导航到另一个页面,然后返回到初始页面,它也会再次弹出。也许可以检查您是否已经为该主机名设置了异常:chrome://settings/contentExceptions#media-按此方式尝试:转到此处:然后单击Flash内部的“允许”。然后,不要点击Chrome横幅,而是刷新页面。再次单击Flash上的允许-无横幅。没有设置站点异常;我们每次重新测试时都会清除该菜单。我从来没有在该页面上看到权限横幅,只有Flash权限对话框。我可以在Chrome中专门阻止该域的媒体权限,这不会有任何区别。在设置中,它说“AdobeFlashPlayer相机和麦克风例外是不同的。”所以我想这是有道理的。我假设这对你来说是不同的-你在使用什么操作系统?我在家,使用Windows8(发生在这里)。在出现问题的工作中,我们使用Windows7。另外,Chrome27不是最新的。升级到Chrome28,我可以用Flash在testwebcam页面上重现这个问题。因此,在我看来,这可能是一个错误之间的版本27和28引入。非常感谢的信息;我很可能会给这个答案悬赏,除非有人找到一些令人惊讶的解决办法。很高兴知道它正在进行中。不幸的是,如果用户关闭并重新打开同一URL上的选项卡,我们的站点有很多状态保留,可能会搞砸。此外,它仍然不如我们希望的用户直观。