如何使用Service或MediaPlayer在我的应用程序中播放bgm?

时间:2019-06-02 03:52:33

标签: java android

我的APP有3个活动,分别为“ MainActivity”,“ LevelActivity”和“ GameActivity”。现在我想在MainActivity和LevelActivity中玩BGM。从Main跳到Level时,我不希望音乐从头开始。所以我用Service玩BGM。

但是问题是,如果我没有在MainActivity中重写onStop(),则在单击“ HOME”按钮后BGM仍在播放。但是,如果我在MainActivity中重写onStop(),则当我从Main跳到Level时,BGM将停止。

public class MusicService extends Service {
    private MediaPlayer mediaPlayer;
    @Override
    public void onCreate() {
    // my codes...
    }
    @Override
    public void onStart(Intent intent, int startId) {
    // my codes...
    }
    @Override
    public void onDestroy() {
        if (mediaPlayer != null) {
            mediaPlayer.stop();
            mediaPlayer.release();
        }
        super.onDestroy();
    }
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

当我按“ HOME”时,我该怎么做才能停止BGM?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过添加boolean变量来达到目的。

1-创建一个boolean变量isAppStillRunning = false

2-然后,当您要开始级别活动时,请在isAppStillRunning = true之前放置startActivity()

3-每当您回到MainActivity时,都要使isAppStillRunning = false

现在在您的onStop()中的MainActivity中,

if(!isAppStillRunning){
//do the proccess to stop music
}