cocos2dx第六篇--游戏背景和音效

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

音频文件的预处理

预处理相关的函数有两个:preloadBackgroundMusicpreloadEffect下面的代码是预处理背景音乐和音频:

//初始化背景音乐
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")

播放音乐的代码可以放在初始化,进入场景,以及结束进入场景三个地方,这个就涉及到生命周期

你可能感兴趣的:(cocos2dx第六篇--游戏背景和音效)