本站文章转载务必在明显处注明:原文链接:http://blog.csdn.net/cjsen/article/details/9405879
前言
Cocos2d-x支持多种音乐格式mp3,wav等音乐格式。并使用SimpleAudioEngine单例类,进行管理。分为游戏中的长时间的背景音乐和短的音效两种,为我们的游戏增加效果。
1.背景音乐
源码常用方法
void preloadBackgroundMusic(const char* pszFilePath);//预加载这个音乐(pszFilePath 为文件名如 soundtrack.mp3)
void playBackgroundMusic(const char* pszFilePath, bool bLoop);//播放背景音乐,bLoop是否循环播放
void playBackgroundMusic(const char* pszFilePath) {//同上,默认不循环播放
this->playBackgroundMusic(pszFilePath, false);
}
void stopBackgroundMusic(bool bReleaseData);//停止背影音乐,bReleaseData是否释放音乐文件
void stopBackgroundMusic() {//同上,默认不释放
this->stopBackgroundMusic(false);
}
void pauseBackgroundMusic();//暂停背影音乐
void resumeBackgroundMusic();//暂停开始播放音乐
void rewindBackgroundMusic();//从头调用播放背影音乐
bool willPlayBackgroundMusic();//返回布尔值 是否将要播放音乐
bool isBackgroundMusicPlaying();//返回布尔值 背影音乐是否在播放中
float getBackgroundMusicVolume();//返回背影音乐的音量
void setBackgroundMusicVolume(float volume);//设置背影音乐的音量
使用示例 :选预加载,再播放
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("soundtrack.mp3");//先预加载
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("soundtrack.mp3", true);//播放
2.音效
源码常用方法
float getEffectsVolume();//获取音效音量使用示例,与播放背影类似
void setEffectsVolume(float volume);//设置音效音量
unsigned int playEffect(const char* pszFilePath, bool bLoop);//播放音效,bLoop是否循环播放
unsigned int playEffect(const char* pszFilePath) {//同上
return this->playEffect(pszFilePath, false);
}
void pauseEffect(unsigned int nSoundId);//暂停某个音效(nSoundId 由playEffect方法返回获得)
void pauseAllEffects();//暂停所有音效
void resumeEffect(unsigned int nSoundId);//重新开始某个音效
void resumeAllEffects();//重新开始所有音效
void stopEffect(unsigned int nSoundId);//停止某个音效
void stopAllEffects();//停止所在音效
void preloadEffect(const char* pszFilePath);//预加载某个音效文件
void unloadEffect(const char* pszFilePath);//释放某个音效文件
SimpleAudioEngine::sharedEngine()->preloadEffect("click.wav");//可以先提前预加载
soundId = SimpleAudioEngine::sharedEngine()->playEffect("click.wav", false);//在需要的地方播放
最后要记住,在程序不需要音乐时,要SimpleAudioEngine::sharedEngine()->end();释放sharedEngine()