Я использую 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, чтобы узнать, является ли он нулевым или нет, прежде чем пытаться остановить обслуживание.