0

我正在做的是我有一个 EditText 和一个按钮。当我写东西并按下按钮时,应用程序会说出这些话。这在模拟器中运行良好,但是当我在手机上运行它时,它不会说话。我不知道是什么问题。是代码有问题还是我需要更改手机中的内容。下面是我使用的代码。

Button btn1;
EditText txt1;
static final String[] texts={""};
TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn1=(Button)findViewById(R.id.button1);
    txt1=(EditText)findViewById(R.id.editText1);
    btn1.setOnClickListener(this);
    tts=new TextToSpeech(MainActivity.this,new TextToSpeech.OnInitListener() {

        @Override
        public void onInit(int status) {
            // TODO Auto-generated method stub
            if(status!=TextToSpeech.ERROR){
                tts.setLanguage(Locale.getDefault());
            }
        }
    });
}

    @Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
        //Random r=new Random();
        //String random=texts[r.nextInt(3)];
        String txt=txt1.getText().toString();
        if(txt!="")
        tts.speak(txt, TextToSpeech.QUEUE_FLUSH, null);     
}

我检查了其他类似的问题,但没有一个令人满意的答案。这是获得技术帮助的最佳场所。请提出解决此问题的方法。

4

2 回答 2

1

我得到了解决方案。我的手机上没有安装 TTS 语言,所以我手动安装了:设置 --> 语言和输入 --> 文本到语音输出 --> 安装语音数据。

于 2013-10-02T15:15:57.813 回答
0

请试试

if(!txt.equals("")) tts.speak(txt, TextToSpeech.QUEUE_FLUSH, null);

使用后也释放 tts 对象使用 shutdown() 方法。

于 2013-09-30T06:50:45.867 回答