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

标签 android audio timer android-mediaplayer

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

  // 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 语句来比较您的两个条件。

关于android - 在两个数字之间的倒数计时器期间发出声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992414/

相关文章:

c# - 如何以正确的方式处理 BackgroundWorkers

c# - 定时器每周抛出一次方法 - C#、Asp.NET

Android Firebase Unity 有错误 : Gradle failed to fetch dependencies and Resolution failed , DllNotFoundException : FirebaseCppApp-5. 2.0

java - 使用 Parse.com 从数据库获取数据以显示在 ListView 中

android - 如何以编程方式将 TextView 添加到具有线性布局和现有 TextView 的 ScrollView

java - 为什么缓冲区大小会影响音频数据?

android - jar 文件被自动删除(在 git clone 之后)

android - 确定是否设置了拨号盘提示音

audio - 增加传入音频流的增益

java - 在android中重新安排定时器