我开发了和android的游戏应用程序。当用户玩游戏且用户可以在禁用音乐复选框中禁用音乐时,我想在后台播放音乐。你能告诉我如何在游戏活动中做到这一点吗?
问候
发布于 2015-01-08 18:49:42
这种技术是用来播放背景音的。
private SoundBroadCastReceiver soundBroadCast;
private void registerBroadCast() {
soundBroadCast = new SoundBroadCastReceiver();
IntentFilter intentfilter = new IntentFilter();
intentfilter.addAction("android.intent.action.USER_PRESENT");
registerReceiver(soundBroadCast, intentfilter);
}
private class SoundBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
startMusic();
}
}
MediaPlayer mediaPlayer = new MediaPlayer();
private void startMusic() {
if (mediaPlayer != null) {
mediaPlayer = null;
}
mediaPlayer = MediaPlayer.create(this, R.raw.main_screen);
mediaPlayer.setLooping(true);
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
}
private void stopMusic() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
}
@Override
protected void onResume() {
if (!((KeyguardManager) getSystemService("keyguard"))
.inKeyguardRestrictedInputMode()) {
startMusic();
}
registerBroadCast();
super.onResume();
}
@Override
protected void onPause() {
unregisterReceiver(soundBroadCast);
stopMusic();
System.gc();
super.onPause();
}发布于 2015-01-08 18:51:52
您可以使用布尔变量,如mMusicButtonOn,并将其初始设置为false,并在游戏开始方法和禁用音乐复选框中设置如下所示
if( !mMusicButtonOn ){
//do Music On
mMusicButtonOn=true;
mMainGameScene.playMusic(MusicFileNames.MAIN_MENU_SOUND);
}
else {
//do Music Off
mMusicButtonOn=false;
mMainGameScene.pauseAllMusic();
}https://stackoverflow.com/questions/27837902
复制相似问题