如果我使用如下所示的一分钟间隔,则语音功能在第二次调用时不起作用。如果我使用较短的,即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);
}
答案 0 :(得分:0)
事实证明,我所要做的就是为我的总时间增加半秒。所以改变120000到120500解决了这个问题。