修改Cocos2dxMusic.java文件中的playBackgroundMusic函数
public void playBackgroundMusic(final String pPath, final boolean isLoop) {
if (this.mCurrentPath == null) {
// it is the first time to play background music or end() was called
this.mBackgroundMediaPlayer = this.createMediaplayer(pPath);
this.mCurrentPath = pPath;
} else {
if (!this.mCurrentPath.equals(pPath)) {
// play new background music
// release old resource and create a new one
if (this.mBackgroundMediaPlayer != null) {
this.mBackgroundMediaPlayer.release();
}
this.mBackgroundMediaPlayer = this.createMediaplayer(pPath);
// record the path
this.mCurrentPath = pPath;
}
}
if (this.mBackgroundMediaPlayer == null) {
Log.e(Cocos2dxMusic.TAG, "playBackgroundMusic: background media player is null");
} else {
// if the music is playing or paused, stop it
boolean isStop = false;
if(mBackgroundMediaPlayer.isPlaying()){
isStop = true;
this.mBackgroundMediaPlayer.stop();
}
this.mBackgroundMediaPlayer.setLooping(isLoop);
try {
Log.e(Cocos2dxMusic.TAG, "playBackgroundMusic");
if(isStop)
this.mBackgroundMediaPlayer.prepare();
this.mBackgroundMediaPlayer.seekTo(0);
this.mBackgroundMediaPlayer.start();
this.mPaused = false;
} catch (final Exception e) {
Log.e(Cocos2dxMusic.TAG, "playBackgroundMusic: error state");
}
}
}