Android phonegap SpeechRecognizer问题:无法读取属性'speechrecognizer'

时间:2014-01-21 12:25:41

标签: android git cordova speech-recognition cordova-3

我是cordova-android app开发的新手。我正在使用cordova 3.3.0来创建Android phonegap SpeechRecognizer应用程序。我提到SpeechRecognizer。根据我已执行以下命令来创建cordova android平台应用程序。

1)cordova创建SpeechrecognizerApp

2)cordova平台添加android

3)phonegap本地插件添加https://github.com/mayurloved/speechrecognizer.git

我在eclipse中导入了该项目,它自动创建了所有必需的包,并在config.xml中进行了所有更改。然后我将示例页面的所有html内容复制到我的index.html文件中。一切都正常完成,但是当我运行我的应用程序时,日志显示错误:

Uncaught TypeError: Cannot read property 'speechrecognizer' of undefined:20

的index.html

 <!DOCTYPE html>
<html>
    <head>
        <title>Speech Recognition plugin demo</title>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="SpeechRecognizer.js"></script>
    </head>
    <body>

        <script type="text/javascript">

            function onDeviceReady(){
                console.log("Device is ready");
            }

            function recognizeSpeech() {
                var maxMatches = 5;
                var promptString = "Speak now"; // optional
                var language = "en-US";                     // optional
                window.plugins.speechrecognizer.startRecognize(function(result){
                    alert(result);
                }, function(errorMessage){
                    console.log("Error message: " + errorMessage);
                }, maxMatches, promptString, language);
            }

            // Show the list of the supported languages
            function getSupportedLanguages() {
                window.plugins.speechrecognizer.getSupportedLanguages(function(languages){
                    // display the json array
                    alert(languages);
                }, function(error){
                    alert("Could not retrieve the supported languages : " + error);
                });
            }

            document.addEventListener("deviceready", onDeviceReady, true);
        </script>

        <button onclick="recognizeSpeech();">Start recognition</button>
        <button onclick="getSupportedLanguages();">Get Supported Languages</button>
    </body>
</html>

我没有在{strong> www 文件夹中复制SpeechRecognizer.js,因为根据以上链接,我不需要在我的应用中复制它,因为我使用的是cordova版本&gt; 3.0。请帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

添加插件后是否启动了phonegap build android?安装插件时,它们仅安装在项目的/ plugins文件夹中,而不安装在平台文件夹中。

您必须为任何平台运行phonegap buildphonegap prepare才能完全安装该插件。

然后你可以在eclipse中刷新项目,你应该看到/ src文件夹中插件的java部分和/ assets / www / plugins中的javascript


如果构建后文件夹平台\ android \ assets \ www \ plugins ...不存在,那可能是因为您的项目已损坏。

在这种情况下,您可以尝试清空项目根目录下的plugins文件夹并重新安装所有插件。

如果这还不够,您可以重试清空平台和插件文件夹(想想保存您在平台文件夹中可能进行的任何自定义)。