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

Play background music using timer in Android

在我的应用程序中,有 1 个主要 activity 并且有许多片段被 activity 膨胀。

在其中一个片段中,有一个任务运行了 10 秒。 与此任务一起,需要在此期间播放背景音乐。

我怎样才能做到这一点?

任何帮助将不胜感激。

您可以使用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);
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(); 开始播放文件,然后启动 运行 一个 Handler 将执行 'musicStopRunnable' 中的代码和 musicStopRunnable 中的代码停止播放音乐。

参考: