如何添加背景音乐到我的Android游戏

问题描述:

我已经搜索很多,但我找不到完整的答案,无论如何,我已经添加了一个服务到我的游戏,但现在的问题是,当我按下家/应用程序列表按钮服务(BGM)仍然打开,我已经很多尝试在主要活动中停止服务(onPause函数),但是我的游戏使用了多于一项活动,所以当我开始另一项活动时,BGM丢失了(因为它正在调用MainActivity-> onPause功能)如何添加背景音乐到我的Android游戏

so soh sohuld do?

(我Serivce类)

package com.hema.mrlibya.firstgame; 

import android.app.Service; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.IBinder; 

/** 
* Created by MrLibya on 18/04/17. 
*/ 

public class BGMusic extends Service { 
    MediaPlayer mMediaPlayer; 

    @Override 
    public void onCreate(){ 
     super.onCreate(); 
     mMediaPlayer = MediaPlayer.create(this,R.raw.bg); 
    } 

    public int onStartCommand(Intent intent, int flags, int startId) { 
     mMediaPlayer.setLooping(true); // Set looping 
     mMediaPlayer.start(); 
     return START_NOT_STICKY; 
    } 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 

    @Override 
    public void onDestroy() { 
     mMediaPlayer.stop(); 
     mMediaPlayer.release(); 
    } 
    /* 
    public void onPause() { 
     mMediaPlayer.pause(); 
     length=mMediaPlayer.getCurrentPosition(); 
    } 
    public void onResume(){ 
     mMediaPlayer.seekTo(length); 
     mMediaPlayer.start(); 

    } 
    */ 
} 

(舱单)

<service android:enabled="true" android:name="BGMusic" /> 

(在MainActivity我只写上(的onCreate功能)

startService(new Intent(this, BGMusic.class)); 

我发现solotuion here

它的工作100%

首先:我建议不要使用服务,因为它没有必要,只是在应用程序中实例化音乐播放器取决于你的偏好。

其次(您的实际问题):切换活动时只需设置一个标志,例如keepMusicOn = true;然后

public void onPause() { 
    if(!keepMusicOn){ 
     mMediaPlayer.pause(); 
    } 
    //reset flag so that the music stops next time onPause is called 
    keepMusicOn = false; 
... 
} 
+0

THX我找到了满满一:) –