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")
播放音乐的代码可以放在初始化,进入场景,以及结束进入场景三个地方,这个就涉及到生命周期









网友评论