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

本站文章转载务必在明显处注明:原文链接: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下载


猜你喜欢

转载自blog.csdn.net/CJsen/article/details/9405879
今日推荐