首页 文章

语音识别插件在Cordova 6中不起作用

提问于
浏览
0

我正在使用Visual Studio工具为Apache Cordova开发Android应用程序 . 我开始了新项目并使用GIT url添加了语音识别插件 .

https://github.com/macdonst/SpeechRecognitionPlugin

它安装成功,项目构建也很成功 . 当我运行应用程序时,在下面的代码中,它在语音识别插件初始化之前显示一个警报,并且在下面的代码之后永远不会达到第二个警报 .

function onDeviceReady() {
        // Handle the Cordova pause and resume events
        alert('test');
        recognition = new SpeechRecognition();
        alert('test 2');
        recognition.onresult = function (event) {
            if (event.results.length > 0) {
                alert(event.results[0][0].transcript);
                q.value = event.results[0][0].transcript;
                //q.form.submit();
            }
        }
        alert('test 2');
        document.addEventListener( 'pause', onPause.bind( this ), false );
        document.addEventListener( 'resume', onResume.bind( this ), false );

        // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
        var element = document.getElementById("deviceready");
        element.innerHTML = 'Device Ready';
        element.className += ' ready';
    };

请帮助,我在这里添加插件时遗漏了什么?

1 回答

  • 0

    长期以来一直困在同一个问题上 . 终于能够破解它了 . 诀窍是添加cordova media plugin .

    工作代码如下:

    index.html

    <!DOCTYPE html>
    <html>
        <head>        
            <meta name="format-detection" content="telephone=no">
            <meta name="msapplication-tap-highlight" content="no">
            <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
            <link rel="stylesheet" type="text/css" href="css/index.css">
            <title>Speech Recognition</title>
        </head>
        <body>      
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <form>
            Click to speak <input type="button" value="speak" name="Download" id="speak" />  <br>
            <input type="text" id="q" name="q" size=60>
            </form>
    
            <script type="text/javascript" src="js/jquery.js"></script> 
            <script type="text/javascript" src="cordova.js"></script>
            <script type="text/javascript" src="js/app.js"></script>
        </body>
    </html>
    

    app.js

    $(document).ready(function() {
        document.addEventListener("deviceready", onDeviceReady, false);
    });
    
    var recognition;
    function onDeviceReady() {  
    
        $('#speak').click( function() {
            recognition = new SpeechRecognition();          
            recognition.onresult = function(event) {
                if (event.results.length > 0) {
                    console.log(event.results[0][0].transcript);                
                    q.value = event.results[0][0].transcript;
                }
            };      
            recognition.start();
        });
    }
    

相关问题