Text To Speech在我的Android应用程序中没有按预期工作

时间:2017-07-21 08:10:54

标签: java android text-to-speech

这是我写的代码。

    final Runnable runnable = new Runnable() {
                    public void run() {
                        if (j < 10) {
                            if(j == 0) {
                                speaker.speak("Forwards",TextToSpeech.QUEUE_FLUSH,null,null);
                                //Log.d("XXYYZZ", String.valueOf(j));
                            }
                            show.setImageResource(0);
                            show.setImageResource(images[j+1]);
                            j++;
                        }
                        else if(j == 10){
                            speaker.speak("Backwards",TextToSpeech.QUEUE_FLUSH,null,null);
                            j++;
                        }

                        else if (j < 19) {
                            show.setImageResource(0);
                            show.setImageResource(images[j+1]);
                            j++;
                        }
                        if (i++ < 94)
                        {
                            if(j ==19)
                                j = 0;
                            //Log.d("XXYYZZ", String.valueOf(j));
                            handler.postDelayed(this, 300);
                        }
                        else {
                            speaker.setSpeechRate(2.0f);
                            speaker.speak("Relax!",TextToSpeech.QUEUE_FLUSH,null,null);
                            Toast.makeText(CurrentWorkoutActivity.this, "Workout Completed", Toast.LENGTH_SHORT).show();
                            finish();
                        }
                    }
                };
                handler.post(runnable);

我使用处理程序导致延迟。

这里我尝试每当变量j的值重置为零时,扬声器(TextToSpeech对象)会说“前进”。但它仅代表第一次运行。

每当j变为10时,它就会说“向后”。请解释错误或概念。

我尝试使用logcat进行调试,j的值按预期变为零,但它不会说话。 我试图搜索很多但没有相关的文档或问题。

我是Android开发的初学者,如果这是一个愚蠢的问题,我很抱歉。

提前致谢..!

1 个答案:

答案 0 :(得分:0)

致力于将if语句放在外部if。

之外