在两个数字之间的倒数计时器期间发出声音

Sound during countdown timer between two numbers

我正在制作一个应用程序,其中需要根据倒数计时器的数字播放不同的声音。

  // Define CountDown Timer Attributes//
                waitTimer1 = new CountDownTimer(60000, 1000) {

                    @Override
                    public void onTick(long millisUntilFinished) {
                        long timeLeft = millisUntilFinished / 1000;
                        Timer.setText("" + String.format("%d min, %d sec",
                                TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
                                TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                                        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));

                        if (timeLeft >= 43) {

                            mp.start();
                        }

                    }

                    @Override
                    public void onFinish() {

                        t1.setEnabled(true);
                        t2.setEnabled(true);
                        next.setEnabled(false);
                        Timer.setText("0:00");
                        next.setText("Start");
                        waitTimer1 = null;
                    }

                }.start();

到目前为止,我已经做到了,因此声音从 1:00 播放到 :43 秒,如下所示:

                         if (timeLeft >= 43) {

                            mp.start();
                        }

我需要下一个声音从 42 秒播放到 27 秒,如下所示:

                         if (timeLeft <42,>27) {

                            mp2.start();
                        }

显然这不起作用我觉得我只是输入错误。我需要应用程序知道在计时器达到 43 秒时开始第二个声音然后在 27 秒停止。谢谢

您正在寻找这个:

else if(timeLeft <= 42 && timeLeft > 27)
{
    mp2.start();
}

这将从 42 循环到 28,因此一旦它滴答到 27,它就会停止。

对于 if 语句中的每个条件,您需要明确告诉编译器您正在比较的两个变量。在这种情况下,我们有 2 个条件:

timeLeft <= 42timeLeft > 27

语句之间的比较可以是逻辑或逻辑与

逻辑或表示为||

逻辑与表示为&&

在你的情况下,你想使用逻辑 and 语句来比较你的两个条件。