在CountDown计时器(在它完成之前)的指定时间播放声音?

时间:2014-09-09 19:34:05

标签: android audio timer mp3

我想告诉Home Activity在CountDown Timer还有20分钟的时候播放mp3声音并且在Eclipse中相对较新我只是无法解决它,我尝试的所有内容都没有&# 39;工作。

public class Home extends Activity {
Button btnStart;
TextView textViewTime;
MediaPlayer mpAudio;


@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);



        btnStart = (Button)findViewById(R.id.btnStart);

        textViewTime  = (TextView)findViewById(R.id.textViewTime);
        textViewTime.setText("01:00:00"); 

        final CounterClass timer = new CounterClass(3600000,1000);
        btnStart.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                timer.start();
            }


        });


    }

public void tipsandtricks(View view) {
    Intent intent = new Intent(this, TipsandtricksActivity.class);
    startActivity(intent);

}

public void about(View view) {
    Intent intent = new Intent(this, AboutActivity.class);
    startActivity(intent);

}


public class CounterClass extends CountDownTimer  {

    public CounterClass(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
        public void onFinish() {
            textViewTime.setText("Free Transfer Over");
            playSound();
        }

        public void playSound() {
            MediaPlayer mp = MediaPlayer.create(getBaseContext(), (R.raw.freetransferover));
            mp.start();

        }


    @Override
    public void onTick(long millisUntilFinished) {

          long millis = millisUntilFinished;
            String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
            System.out.println(hms);

            textViewTime.setText(hms);
    {

    if((TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished)==20) &&
            TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))==00)

    {

    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    // Vibrate for 500 milliseconds
    v.vibrate(7000);

    {   

    }


    }

    }
    }






}

}

正如你在代码中看到的那样(功能正常)我在CountDown计时器结束时发出了一个mp3声音,我想出了如何在剩下20分钟时让振动器工作。但是,当CountDown计时器还剩20分钟时,如何让第二个mp3声音只播放一次?

非常感谢任何帮助。

0 个答案:

没有答案