播放游戏背景音乐 步骤
1、书写音乐播放的service
public class MusicService extends Service {
private static final int MUSIC_ID = R.raw.game_music; // 音乐资源id
private MediaPlayer player;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(getBaseContext(), MUSIC_ID);
player.setLooping(true);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
if(player != null){
player.pause();
player.stop();
}
}
}
2、在AndroidManifest.xml文件中注册服务
<service android:name="com.emo.planegame.service.MusicService">
<intent-filter>
<action android:name="com.emo.planegame.musicservice"/>
</intent-filter>
</service>
3、播放背景音乐
playMusicThread = new Thread(){
@Override
public void run() {
Intent intent = new Intent("com.emo.planegame.musicservice");
MenuAvt.this.startService(intent);
}
};
playMusicThread.start();
这个意图会调用sevice的onCreate()方法,并开启音乐。
注:为了不让音乐的播放影响到游戏界面的流畅,所以在线程中开启音乐播放服务。
4、停止音乐服务
Intent intent = new Intent("com.emo.planegame.musicservice");
MenuAvt.this.stopService(intent);
这个意图会调用service的onDestroy()方法,并停止音乐。