Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Phonegap在Android上启动语音识别器_Javascript_Android_Cordova_Speech Recognition - Fatal编程技术网

Javascript 使用Phonegap在Android上启动语音识别器

Javascript 使用Phonegap在Android上启动语音识别器,javascript,android,cordova,speech-recognition,Javascript,Android,Cordova,Speech Recognition,目前我正在制作一个Phonegap应用程序。 我想把增强现实和语音输入结合起来。 Phonegap有一个名为SpeechRecognitor的插件,但我无法让它工作 我的标题: <script type="text/javascript" src="cordova-2.6.0.js"></script> <script type="text/javascript" src="SpeechRecognizer.js"></script>

目前我正在制作一个Phonegap应用程序。 我想把增强现实和语音输入结合起来。 Phonegap有一个名为SpeechRecognitor的插件,但我无法让它工作

我的标题:

<script type="text/javascript" src="cordova-2.6.0.js"></script>
    <script type="text/javascript" src="SpeechRecognizer.js"></script>
    <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", onDeviceReady, false);

        function speechOk() {
            alert('speech works');
        }

        function speechFail() {
            alert("speech doesn't work");
        }

        function onDeviceReady() {
            window.plugins.speechrecognizer.init(speechOk, speechFail);
        }

        $("#micButton").bind("touchstart", function() {     
            var requestCode = 4815162342;
            var maxMatches = 1;
            var promptString = "What do you want?";
            window.plugins.speechrecognizer.startRecognize(speechOk, speechFail, requestCode, maxMatches, promptString);
        });
    </script>

文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数speechOk(){
警觉(“言语作品”);
}
函数speechFail(){
警惕(“讲话不起作用”);
}
函数ondevicerady(){
window.plugins.speechrecognizer.init(speechOk,speechFail);
}
$(“#micButton”).bind(“touchstart”,function(){
var requestCode=4815162342;
var-maxMatches=1;
var promptString=“您想要什么?”;
window.plugins.speechrecognizer.startRecognite(speechOk、speechFail、requestCode、maxMatches、PrompString);
});
项目的图片(config.xml):

提前感谢

出现了一些问题。 首先,SDK版本不对。如果你使用新的cordova,你还必须使用最新版本的插件。此版本需要SDK 15或更高版本。(android清单->
)。 之后,出于某种原因,插件init不会返回任何内容。 我刚刚触发了:window.plugins.speechrecognizer.startrerecognize();函数,然后执行

javascript(此代码需要jQuery):

“#micButton”是启动android语音识别必须按下的按钮

“#searchField”是一个输入字段,用于获取语音识别的结果


谢谢比劳先生的忠告

不是你的错,
SpeechRecognizer.java
内部有一个bug

我也遇到了同样的问题,我只需将
语音识别器
插件替换为旧版本(如
2.0.0
),就可以从下载


它在
phonegap2.5.0
中对我起作用,我猜它在
2.6.0
中起作用,我通过在github repo上遵循readme.md使它工作得很好。你确定每件事都拼写正确吗?起初,我遇到了麻烦,因为我把它错打成了speechRecgonizer。另外…您的设备上有语音识别器应用程序吗?它在Nexus7上对我有效,但在没有语音识别器应用程序的旧设备上,它失败了。如果在
ondevicerady()中执行
console.log(window.plugins.speechrecognizer)
,会发生什么情况?最后,你的日志怎么说?真奇怪。我不能让它工作。我的控制台日志:“Uncaught TypeError:无法读取未定义”的属性“speechrecognizer”:你的设备上有语音识别器应用程序吗?我有一个Sony Xperia Z(android 4.1.2),所以这不是问题,对吗?我已经在android清单中将min sdk版本更改为15,现在我不再收到任何控制台错误,但现在它根本不记录任何内容。我已更新插件以删除无用的init方法。该插件在以下位置可用:。如果遇到任何错误,请创建问题通知单。
    $("#micButton").bind("touchstart", function() {        
        var requestCode = 4815162342;
        var maxMatches = 1;
        var promptString = "What do you want?";
        window.plugins.speechrecognizer.startRecognize(speechOk, speechFail, requestCode, maxMatches, promptString);
    });

    function speechOk(result) {
        var match, respObj;
        if (result) {
            respObj = JSON.parse(result);
            if (respObj) {
                var response = respObj.speechMatches.speechMatch[0];
                $("#searchField").val(response);
                $("#searchButton").trigger("touchstart");
            } 
        }
    }

    function speechFail(m) {
        navigator.notification.alert("Sorry, I couldn't recognize you.", function() {}, "Speech Fail");
    }