Wygląda tak, jak zaprojektowano TextToSpeech. Zgadnij, że może załadować tylko jedno dane językowe w tym samym czasie, a kiedy zażądasz innego, musisz wyładować bieżące dane językowe i załadować nowe. Dodałem tutaj problem: https://code.google.com/p/android/issues/detail?id=200974
Prawdopodobnie Google to naprawi w przyszłości.
Zrobili to!
Jako rozwiązanie tymczasowe możesz teraz wstępnie zsyntetyzować plik audio, a następnie po prostu go odtworzyć. F.g. możesz uruchomić AsyncTask podczas uruchamiania działania i wygenerować dźwięk w tle. A kiedy będzie gotowy, odsłoni przycisk w interfejsie użytkownika, aby umożliwić użytkownikowi jego odtworzenie. Zauważyłem także, że TextToSpeech może być lepiej wprowadzony do własnego procesu serwisowego z użyciem atrybutu android: process dla Usługi, aby uniknąć zamrożenia interfejsu użytkownika na niektórych urządzeniach, gdy setLanguage ładuje dane językowe.
AKTUALIZACJA 2016-02-17: Właśnie zaktualizowałem TextToSpeech do wersji 3.8.14 z 15 lutego. I nie więcej opóźnień! Używam 2 języków, czytając teksty różnych języków jeden po drugim i bez żadnych opóźnień! Dzięki Google i zespół TextToSpeech! Jesteś najlepsza!
AKTUALIZACJA 2016-02-18: Przetestowałem więcej urządzeń i stwierdziłem, że problem nadal występuje w przypadku starszych urządzeń, na których nadal używany jest system Android 4.x. Testowany na XOOM z Androidem 4.1.2 i niektórym noname device 7100 z Androidem 4.1.1. Obie wciąż mają te same opóźnienia. Nie jestem pewien, czy jest to powiązane, ale zauważyłem, że zarówno urządzenie z systemem Android z Androidem 4.x ma problem z UtteranceProgressListener. Aby działał na takich urządzeniach, musiałem przekazać parametr wypowiadający do funkcji speak(). Jednak urządzenie, w którym ten błąd zniknął, działało dobrze bez tego parametru. Urządzenie, na którym obecnie działa dobrze, to LG d405 z Androidem 5.0.2. I miało to ten sam problem z opóźnieniem, zanim zainstalowałem ostatnią aktualizację TextToSpeech.
Jaki jest status tego pytania? Czy udało Ci się znaleźć rozwiązanie? – user1339260