Я пытаюсь остановить TextToSpeech по нажатию на кнопку назад. Но речь не прерывается, даже если я закрою приложение (только когда очищу кэш — Синтезатор речи Google). Как мне решить эту проблему, помогите разобраться.
private boolean mShouldSpeak = true;
TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cat);
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
tts.setEngineByPackageName(enginePackageName);
tts.setLanguage(Locale.getDefault());
tts.setPitch(0);
tts.setSpeechRate(1);
speak();
}
}
});
}
private void speak() {
if (mShouldSpeak == true)
{
tts.speak("Автор: " +getResources().getString(R.string.catAuthor), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
tts.speak(getResources().getString(R.string.catName), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
tts.speak(getResources().getString(R.string.catDesc), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
}
}
@Override
protected void onDestroy() {
if (tts != null)
{
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
public void onBackPressed() {
onDestroy();
super.onBackPressed();
}
Попробуйте завершить в onStop()
@Override
protected void onStop()
{
super.onStop();
if(tts != null){
tts.shutdown();
}
}
так же в onBackPressed()
@Override
public void onBackPressed(){
super.onBackPressed();
if(tts != null){
tts.shutdown();
}
}
п.с. принудительный вызов onDestroy в onBackPressed лучше удалить.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Получаю я дату заказа в String в таком формате 2017-07-25T13:24:46+0300 И мне надо сгруппировать все даты по неделямТо есть, например, на этой неделе были...
здравствуйте, может кто поделиться кодом многопоточного бинарного поиска числа в массиве, при помощи C++ MPI и/или Java ThreadsСпасибо
Встретил это в книге по Java Яков Файн "Программирование на Java