Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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
Java 语音识别无法在Android上工作_Java_Android_Textview_Text To Speech - Fatal编程技术网

Java 语音识别无法在Android上工作

Java 语音识别无法在Android上工作,java,android,textview,text-to-speech,Java,Android,Textview,Text To Speech,我想在文本视图中显示我使用tts引擎所说的内容。我有一个按钮: btnparla.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

我想在
文本视图中显示我使用tts引擎所说的内容。我有一个
按钮

btnparla.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                    i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something");

                    try {
                        startActivityForResult(i, VOICE_REC);
                        //txt.setText("");
                    } catch (ActivityNotFoundException e){
                        Toast t = Toast.makeText(getApplicationContext(), "Errore", Toast.LENGTH_SHORT);
                        t.show();
                    }
                }   

            });
然后:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO: Implement this method
        super.onActivityResult(requestCode, resultCode, data);

        switch (resultCode) {
            case VOICE_REC: {
                    if (resultCode == Activity.RESULT_OK) {
                        ArrayList<String> dico = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                        resultList.setText(dico.get(0));

                    }
                    break;
                }


                }
        }
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据)
{
//TODO:实现此方法
super.onActivityResult(请求代码、结果代码、数据);
开关(结果代码){
案例语音记录:{
if(resultCode==Activity.RESULT\u确定){
ArrayList dico=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果);
resultList.setText(dico.get(0));
}
打破
}
}
}

其中,
resultList
是在
onCreate
resultList=(TextView)findViewById(R.id.list)中声明的
TextView
按钮可以工作,但不会在
文本视图中保存任何内容。它没有显示我说的话。有什么问题?

startActivityForResult中的参数VOICE\u REC(i,VOICE\u REC)是请求代码而不是结果代码。将开关条件从
开关(结果代码)
更改为
开关(请求代码)

开关(请求代码){
案例语音记录:{
if(resultCode==Activity.RESULT\u确定){
ArrayList dico=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果);
resultList.setText(dico.get(0));
}
打破
}
}

代码看起来正常,我想您的TextView声明可能有问题,但我无法判断。请让我看看那个声明是什么样子的。还要在setText之后添加这段代码,并告诉我记录器是否有任何结果:if(matches.size()>0){Log.d(“MainActivity”,matches.get(0))};如果是这样的话,那么我们就知道文本到语音正在工作,这一定是文本视图问题。在你的另一个问题中,你说你正在创建一个自定义区域设置,我想这是持续的。尝试添加i.putExtra(RecognizerIntent.EXTRA_语言,“it”);
    switch (requestCode) {
        case VOICE_REC: {
            if (resultCode == Activity.RESULT_OK) {
                ArrayList<String> dico =  data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                resultList.setText(dico.get(0));

            }
            break;
        }
    }