CocosDenshion引擎
CocosDenshion引擎可以独立于Cocos2dx单独使用。其本质是封装了OpenAL音频处理库,具体使用的API是SimpleAudioEngine,SimpleAudioEngine有几个常用的函数:
-
void preloadBackgroundMusic(const char *pszFilePath).
预处理背景音乐文件,将压缩格式的文件进行解压处理,如MP3解压为WAV -
void playBackgroundMusic(const char * pszFilePath,bool bLoop=false)
播放背景音乐,参数bLoop控制是否循环播放,默认为false -
void stopBackgroundMusic()
停止播放背景音乐 -
void pauseBackgroundMusic()
暂停播放背景音乐 -
void resumeBackgroundMusic()
继续播放背景音乐 -
bool isBackgroundMusicPlaying()
判断背景音乐是否在播放 -
unsigned int playEffect(const char *pszFilePath)
播放音效 -
void pauseEffect(unsigned int nSoundId)
暂停播放音效,参数nSoundId是playEffect函数返回ID -
void resumeAllEffects()
继续播放所有音效 -
void stopEffect(unsigned int nSoundId)
停止播放音效,参数nSoundId是playEffect函数返回ID -
void stopAllEffects()
停止所有播放音效 -
void preloadEffect(const char * pszFilePath)
预处理音效音频文件,将压缩格式的文件进行解压缩,如MP3解压为WAV
音频文件的预处理
预处理相关的函数有两个:preloadBackgroundMusic
和preloadEffect
下面的代码是预处理背景音乐和音频:
//初始化背景音乐
SimpleAudioEngine::getInstance()-> preloadBackgroundMusic("sound/jazz.mp3")
//初始化音效
SimpleAudioEngine::getInstance()->preloadEffect("sound/Blip.wav")
这些预处理过程代码一般放在appDelegate中didFinishLunching方法中
播放背景音乐
SimpleAudioEngine::get instance()->playBackgroundMusic("sound/dd.mp3",true)
SimpleAudioEngine::get instance()->stopBackgroundMusic("sound/dd.mp3")
播放音乐的代码可以放在初始化,进入场景,以及结束进入场景三个地方,这个就涉及到生命周期