webkitspeechrecognition不再提示许可

时间:2015-03-29 15:26:27

标签: javascript html5 webkit speech-recognition

我一直在使用webkitspeechrecognition的几个页面进行原型设计。我很快就知道你无法从文件中加载这些文件,你必须从网络服务器上提供它们。我正在使用osx所以我只是将我的文件移动到已经运行并启用的本地apache。这很好用了很长一段时间。

出于某种原因,我的网页都没有正常工作会提示我拒绝/允许使用麦克风。我甚至从另一个网络服务器复制了一个现有的工作页面,如果我从http://localhost/speech.html加载它,它就不会提示。它会跳过提示并转到我的recognition.onerror处理程序并记录“not-allowed”

但是,如果我从http://127.0.0.1/speech.html加载相同的页面(或我的任何其他原型),它可以正常工作。这让我觉得我不小心缓存了一个像“总是拒绝”之类的反应。我想我清除/重置了我所有的Chrome设置,但我仍然有同样的行为。 127.0.0.1将正确提示,但localhost根本不会提示。

chrome可能会存储一些我需要清除的其他设置吗?

2 个答案:

答案 0 :(得分:1)

您的麦克风设置可能存储在chrome://settings/contentExceptions#media-stream-mic。您可以查看已保存权限的网站。

答案 1 :(得分:1)

在chrome中请求getUserMedia权限的工作原理如下:

  • 如果您有http请求,getUserMedia将只记住该会话的权限。如果你回到同一页面。它又问了一遍。
  • 如果您通过https执行相同的请求,则在设置权限后,您始终拥有权限。
  • 我的记忆是为http://localhost/ ...授予例外以进行调试。在这种情况下,您不需要重复授予 权限。
  • 如果你使用http和127.0.0.1/,我认为没有例外。

http://www.html5rocks.com/en/tutorials/getusermedia/intro/