谷歌WebSpeech API正在抛弃“不允许”#39;麦克风权限错误

时间:2017-09-04 16:08:22

标签: javascript google-chrome speech-recognition httpserver

我正在使用此网站上的Google的WebSpeech API: https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API

在我的Windows机器上使用Python的http.server, enter image description here

它没有任何问题: enter image description here

我上传了完全相同的文件,相同的API,但它在我的CentOS远程服务器中无法使用,并且不允许使用'麦克风权限错误: enter image description here

我认为这个问题可能与http服务器有关。所以我尝试了Apache Httpd,Python http.server和Nginx。他们都没有工作。

关于什么阻挡麦克风的任何想法? 谢谢!

3 个答案:

答案 0 :(得分:2)

我无法找到支持此文档的文档,但根据我自己的经验,我可以确认,只有在网站上安装SSL证书后,chrome才会阻止它请求麦克风访问。

答案 1 :(得分:1)

我遇到了同样的问题(抛出not-allowed),但我使用的是HTTPS。

就我而言,事实证明您无法从iframe获取语音或启用麦克风访问权限。当没有在iframe中显示时,相同的代码正常工作。

答案 2 :(得分:1)

我也经历过not-allowed的经历-尝试从跨源iframe中的Chrome访问麦克风。通过将allow="microphone;"添加到iframe来解决:

<iframe src="mysrc" allow="microphone;"></iframe>

注意:还需要对父页面和iframe页面使用HTTPS

参考:https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes