我正在做的是我有一个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);
}我检查了其他类似的问题,但都没有令人满意的答案。这是获得技术帮助的最好地方。请提出解决这个问题的办法。
发布于 2013-10-02 15:15:57
我找到解决办法了。我的手机上没有安装TTS语言,所以我手动完成了:设置->语言和输入->文本到语音输出->安装语音数据。
发布于 2013-09-30 06:50:45
请尝试
if(!txt.equals("")) tts.speak(txt,TextToSpeech.QUEUE_FLUSH,null);
还可以在使用关闭()方法后释放tts对象。
https://stackoverflow.com/questions/19087827
复制相似问题