W mojej aplikacji używam TTS. Mam 20 różnych czynności, które zmieniają się, gdy użytkownik przesuwa palcem w lewo lub w prawo. Zgodnie z tym działaniem mówi się tekstem. Wykonuję tts z osobnym wątkiem, a wybór działania odbywa się z głównym wątkiem. Ale problem jest bardzo powolny, interfejs użytkownika wydaje się być powolny. Kiedy przesuwaj palcem w lewo lub w prawo, gdy skończy się tts, wypowiadając tekst, aktywność zmienia się, co nie powinno się zdarzyć, ponieważ używam osobnego wątku dla tts. Oto kod:Interfejs użytkownika aplikacji Text To Speech jest wolny Android
TTS klasa:
public class textToSpeech {
TextToSpeech tts=null;
public textToSpeech(Context con)
{
tts = new TextToSpeech(con,new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR) // initialization me error to nae ha
{
tts.setPitch(1.1f); // saw from internet
tts.setSpeechRate(0.4f); // f denotes float, it actually type casts 0.5 to float
tts.setLanguage(Locale.US);
}
}
});
}
public void SpeakText (String text)
{
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); // TextToSpeech.QUEUE_FLUSH forces the app to stop all the sounds that are currently playing before speaking this text
}
public void stopSpeak()
{
tts.stop();
}
Gest Reader Klasa: (oddzielna klasa)
public void decideAlphabet()
{
tts.stopSpeak();
threadForTTS.start();
switch (i)
{
case 0:
activities=null;
activities = new Intent(contxt,A.class);
contxt.startActivity(activities);
break;
case 1:
activities=null;
activities = new Intent(contxt,B.class);
contxt.startActivity(activities);
break;
....... 20 more case statements for selecting activities
}
decideActivity() wywoływana jest metoda, gdy jest zaznaczone, który został przesunięty, przesuń palcem w prawo lub w lewo.
UWAGA:
Przed dodaniem TTS w tej aplikacji, interfejs użytkownika został działa prawidłowo bez opóźnienia lub powolność. Po dodaniu TTS aplikacja stała się wolna. Jak mogę rozwiązać ten problem
Pozdrowienia
Każdy organ tutaj, aby pomóc ??? – user2498079