我在应用中使用TextToSpeech。
private TextToSpeech tts = null;
tts = new TextToSpeech(this, status -> {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.getDefault());
if (result == TextToSpeech.LANG_MISSING_DATA ||
result == TextToSpeech.LANG_NOT_SUPPORTED) {
Timber.e("This Language is not supported");
} else {
tts.speak(TTS, TextToSpeech.QUEUE_FLUSH, null, null);
}
} else
Timber.e("Initilization Failed!");
});
除了尝试暂停应用程序外,所有工作都完美。
@Override
protected void onPause() {
if(tts != null){
tts.stop();
tts.shutdown();
}
super.onPause();
Timber.tag(Utils.TAG_DEV + TAG).d("onPause");
}
在这里我收到一条错误消息:服务未注册:android.speech.tts.TextToSpeech$Connection@9fba72f 不知道为什么!在尝试停止服务之前,我测试了我的tts是否为null。