CountDownTimer完成后,MediaPlayer无法启动

时间:2017-08-23 07:52:22

标签: android countdowntimer

我有CountDownTimer这样:

cuentaAtras = new CountDownTimer(mili, 1000) {

            public void onTick(long millisUntilFinished) {
                long seconds = millisUntilFinished / 1000;


                if (seconds  <= TIEMPO3){

                    if (tic1.isPlaying()){
                        tic1.stop();
                        tic2.start();
                    }

                } else if (seconds <= TIEMPO && seconds > TIEMPO2 + 10){
                    tic1.start();
                }
            }

            public void onFinish() {
                if (tic2.isPlaying())
                {
                    tic2.stop();
                }
                ticExp.start();

                tic1.reset();
                tic2.reset();
                ticExp.reset();

            }
        }.start();

变量tic1tic2 y ticExp类型为 MediaPlayer

 tic1 = MediaPlayer.create(getApplicationContext(), R.raw.tic1);
 tic1.setLooping(true);
 tic2 = MediaPlayer.create(getApplicationContext(), R.raw.tic3);
 tic2.setLooping(true);
 ticExp = MediaPlayer.create(getApplicationContext(), R.raw.exp);

当我执行onFinish方法时,应该播放MediaPlayer ticExp,但这不会发生。

我在方法 ticExp.start() 中测试了写onTick,这样可行,因此文件没有损坏或类似的东西。 我不知道为什么 onTick 方法有效,但在 onFinish 中没有。 (但onFinish中的其他句子代码执行没有问题)

明确地说,我希望ticExp方法能够播放onFinish

抱歉我的英文。感谢。

1 个答案:

答案 0 :(得分:0)

ticExp.reset(); ticExp.start();onFinish()正在ticExp.reset();,这意味着您实际上正在启动并重置(使其闲置)。只需删除onFinish()中的MediaPlayer

对于onTick的完整状态,您可以refer this

还有一件事,datetime方法中的其他条件永远不会执行。