Chrome版本60 SpeechRecognition

时间:2017-08-08 17:01:13

标签: google-chrome

版本60之后,非HTTPS网站禁用了webkitSpeechRecognition。 这主要是用于发展目的的主要问题。有没有办法绕过/禁用此安全功能?

问题是,如果您想要访问麦克风,应该询问您的弹出窗口是否永远不会显示在HTTP上,而是在HTTPS上显示。

为DEV设置HTTPS并不容易,所以我真的需要一种方法来绕过它。

3 个答案:

答案 0 :(得分:2)

简短回答,。你无法禁用它。

但是,如果您有Windows,可以通过IIS中的localhost来托管它。有一个关于如何做到这一点here的教程。在IIS中注册后,您必须添加一些权限,以便在浏览器中使用localhost进行查看。

如果您正在运行Linux,则可以安装Apache2并将其放入/var/www/public_html/{websitename}.然后您只需通过浏览器localhost访问它。有一个关于安装Apache here的教程。

在使用本地文件时,确实应该有一种方法可以让麦克风在浏览器中工作。一旦你设置localhost,就可以使用起来相对简单了。

答案 1 :(得分:1)

我在本地试过这个并且在没有HTTPS的情况下运行良好。如果直接从文件系统提供文件,它不起作用,但在静态文件服务器的帮助下(我使用python3 -m http.server)我设法让它工作。

希望它有所帮助!

<html>
    <head>
        <title>Teste</title>
    </head>
    <body>
        <button id="btn">capture</button>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"> </script>
        <script>
            $(document).ready(function(){
                var recognition = new webkitSpeechRecognition();
                recognition.onresult = function(event) { 
                  console.log(event) 
                }
                var started = false;
                $('#btn').click(function(){
                    if (started){
                        recognition.stop();
                        $(this).html('capture');
                        started = false;
                    }
                    else{
                        recognition.start();
                        started = true;
                        $(this).html('stop');
                    }
                });
            })
        </script>
    </body>
</html>

编辑:jQuery没有必要。这只是我的一个老习惯: - )

答案 2 :(得分:-1)

为什么不在您的开发服务器上使用免费的https证书(如letsencrypt)?我的意思是它现在是免费的,然后你可以通过https开发。