Cocos2d-x游戏开发之SimpleAudioEngine 音乐音效

来源:互联网 发布:网络电工 编辑:程序博客网 时间:2024/05/08 16:11

本站文章转载务必在明显处注明:原文链接:http://blog.csdn.net/cjsen/article/details/9405879

前言

Cocos2d-x支持多种音乐格式mp3wav等音乐格式。并使用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()

简单的实例Demo下载


原创粉丝点击