@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
init();
}
public void init() {
tts = new TextToSpeech(Game.this, new OnInitListener() {
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
tts.setLanguage(Locale.US);
speakout("Hello Gies");
}
}
});
}
public void speakout(String text) {
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
tv2.setText("" + text);
}
@Override
protected void onPause() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onPause();
}
代码运行正常。我试图将文本转换为语音,但我无法找到所需的输出。请帮我解决问题。 提前谢谢。
答案 0 :(得分:2)
在成功调用onInit之前不应该使用tts引用,并且从代码中可以清楚地知道在创建TextToSpeech类之后调用speakout。将speakout("Hello Gies");
移至onInit
内。此外,如果您在onPause中关闭tts,那么最好在onResume中重新创建它 - 这意味着您实际上可以将init();
移动到onResume
。