如何添加背景音乐到我的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));
答
首先:我建议不要使用服务,因为它没有必要,只是在应用程序中实例化音乐播放器取决于你的偏好。
其次(您的实际问题):切换活动时只需设置一个标志,例如keepMusicOn = true;
然后
public void onPause() {
if(!keepMusicOn){
mMediaPlayer.pause();
}
//reset flag so that the music stops next time onPause is called
keepMusicOn = false;
...
}
THX我找到了满满一:) –