文章目录
  1. 1. 播放音乐和音效

游戏中声音分为两类:

  1. 音乐:长度较长,同一时间只能播放一个,适合做为环境音乐
  2. 音效:长度较短,可以同时播放多个,拥有很强的表现力。

Cocos2dx中使用音效引擎CocosDenshion。其实现了简单易用的SimpleAudioEngine类。

播放音乐和音效

SimpleAudioEngine是单例类

SimpleAudioEngine::sharedEngine();//获取实例。
  1. 预加载

    加载引擎文件会消耗大量的时间,如果在需要播放音效时实时加载,将会出现卡顿现象,所以采用预加载的手段。

    void preloadEffect(const char* pszFilePath):用于预加载音效文件,其中pszFilePath为音效文件所在的目录位置。  
    void preloadBackgroundMusic(const char* pszFilePath):用于预加载背景音乐,其中pszFilePath为音乐文件所在的目录位置。
    
  2. 播放与停止

    unsigned int playEffect(Const char* pszFilePath,bool bLoop = false):播放音效
    void playBackgrounMusic(Const char* pszFilePath,bool bLoop = false):播放音乐
    void stopEffect(unsigned int nSoundId):通过参数关闭特定音效
    void stopAllEffects():停止播放所有音效
    void stopBackgroundMusic():停止播放背景音乐
    
  3. 暂停与恢复播放

    void pauseBackgroundMusic():暂停播放背景音乐
    void pauseEffect(unsigned int nSoundId):暂停播放特定音效
    void pauseAllEffects():暂停所有的音效
    void resumeBackgroundMusic():恢复音乐播放。
    void resumeEffect(unsigned int nSoundId):恢复播放特定音效
    void resumeAllEffects():恢复所有被暂停的音效
    
  4. 其他

    void rewindBackgroundMusic():重新播放背景音乐。  
    bool isBackgroundMusicPlaying():返回一个布尔类型的值,表示是否正在播放背景音乐。  
    void unloadEffect(const char*pszFilePath):卸载已预载入的音效文件,以释放系统资源。pszFilePath参数代表预载入音效文件的路径。当不再使用某个音效文件时,我们可以通过调用此函数释放资源。然而,如果再次使用此音效,引擎会再次载入该音效文件,导致消耗大量的时间。  
    float EffectsVolume属性:获取或设置音效的音量大小,其取值为0.01.0之间的浮点数。注意,对此属性的设置会影响到所有音效的音量大小。  
    float BackgroundMusicVolume属性:获取或设置背景音乐的音量大小,其取值为0.01.0之间的浮点数。与EffectsVolume属性类似,对此属性的设置也会影响到所有背景音乐的音量大小。  
    void end():当不再使用音频引擎时,调用此方法来释放SimpleAudioEngine所占用的资源。 
    
文章目录
  1. 1. 播放音乐和音效