Android Studios CountDownTimer

时间:2016-02-07 04:57:37

标签: java android-studio

如果我使用如下所示的一分钟间隔,则语音功能在第二次调用时不起作用。如果我使用较短的,即30秒间隔,那么它按预期工作。我认为这与tts引擎没有准备好有关。有任何想法吗?我用更长的例子对此进行了测试,问题似乎出现在if语句中。例如,我尝试了4分钟的例子,它会说“剩下4分钟,剩下3分钟,剩下2分钟,......,倒计时完成”。

    new CountDownTimer(120000, **60000**) {
        public void onTick(long millisUntilFinished) {
            long minutesLeft = (((millisUntilFinished + 60000) / 1000) / 60);
            if (minutesLeft==1){
                speech(minutesLeft + " minute remains");
            } else{
                speech(minutesLeft + "minutes remain");
            }
        }

        public void onFinish() {
            speech("Countdown Complete");
        }
    }.start();

    private void speech(String toSpeak) {
    float pitch, speed;
    pitch=1;
    speed=1;
    engine.setPitch(pitch);
    engine.setSpeechRate(speed);
    engine.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null, null);
}

1 个答案:

答案 0 :(得分:0)

事实证明,我所要做的就是为我的总时间增加半秒。所以改变120000到120500解决了这个问题。