在Android中使用计时器播放背景音乐

时间:2018-03-29 19:16:51

标签: java android background-service background-music

在我的应用程序中,有1个主要活动,并且有许多片段被活动夸大了。

在其中一个片段中,有一个运行10秒的任务。 除此任务外,还需要播放背景音乐。

我怎样才能做到这一点?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用MediaPlayer播放音乐,如下所示

MediaPlayer mp = MediaPlayer.create(this, idSong);
mp.start();

您可以使用定时器在10秒后停止播放音乐,如下所示

new java.util.Timer().schedule(
    new java.util.TimerTask() {
        @Override
        public void run() {
            mp.pause();
        }
}, 10000);

答案 1 :(得分:0)

private void startEverything() {
    startMyAnimation();
    playMusic()
}

private void startMyAnimation() {
    ObjectAnimator progressAnimator = ObjectAnimator.ofInt(mProgress, "progress", 0, 10000);
    progressAnimator.setDuration(10000);
    progressAnimator.setInterpolator(new LinearInterpolator());
    progressAnimator.start();
}

private void playMusic() {
    final MediaPlayer soundPlayer= MediaPlayer.create(getContext(), R.raw.your_bgm);
    soundPlayer.start();


    Handler musicStopHandler = new Handler();
    Runnable musicStopRunable = new Runnable() {
        @Override
        public void run() {
            soundPlayer.stop();
        }
    };

    musicStopHandler.postDelayed(musicStopRunable, 10000);
}

这里发生的是,您通过拨打startMyAnimation()开始动画,然后拨打playMusic()来播放音乐。

playMusic()中,您通过调用soundPlayer.start();开始播放该文件,然后开始运行将在{musicStopRunnable'中执行代码的Handler以及{{1}中的代码停止播放音乐。

参考:https://stackoverflow.com/a/18459304/4127441

https://stackoverflow.com/a/1921759/4127441