Cocos2D-x背景音乐和音效的统制方法

Cocos2D-x背景音乐和音效的控制方法


第一步:预加载背景音乐和音效

// 预加载背景音乐和音效:相对路径 .mid   .wav 和 .mp3等格式文件

SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic( CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(MUSIC_FILE) );

SimpleAudioEngine::sharedEngine()->preloadEffect( CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(EFFECT_FILE) );


第二步:控制声音

1、背景音乐控制方法:

//播放背景音乐

 

//MUSIC_FILE就是音乐文件相对Resources文件夹的相对路径下的文件名,然后再转换为绝对路径,第二个参数就是是否循环播放

SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(MUSIC_FILE)).c_str(), true);

 

//停止背景音乐播放

SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();

 

//暂停背景音乐播放

SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();

 

//继续背景音乐播放

SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();

 

//重新播放背景音乐

SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();

 

//背景音乐是否正在播放

 

SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()

 

//增大背景音乐音量

SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() + 0.1f);

 

//减小背景音乐音量

SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() - 0.1f);


2、音效控制方法:

//播放音效1

m_nSoundId = SimpleAudioEngine::sharedEngine()->playEffect(std::string(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(EFFECT_FILE)).c_str());

 

//播放音效2

m_nSoundId = SimpleAudioEngine::sharedEngine()->playEffect(std::string(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(EFFECT_FILE)).c_str(), true);

 

//停止播放音效(注意:如果没有播放,你就别停止,因为播都没播放,其他处理也一样...)

SimpleAudioEngine::sharedEngine()->stopEffect(m_nSoundId);

 

//暂停音效播放

SimpleAudioEngine::sharedEngine()->pauseEffect(m_nSoundId);

 

//继续音效播放

SimpleAudioEngine::sharedEngine()->resumeEffect(m_nSoundId);

 

//暂停所有音效

SimpleAudioEngine::sharedEngine()->pauseAllEffects();

 

//继续所有音效

SimpleAudioEngine::sharedEngine()->resumeAllEffects();

 

//停止所有音效

SimpleAudioEngine::sharedEngine()->stopAllEffects();

 

//卸载音效

SimpleAudioEngine::sharedEngine()->unloadEffect(std::string(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(EFFECT_FILE)).c_str());

 

//增大音效音量

SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() + 0.1f);

 

//减小音效音量

SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() - 0.1f);


第三步:释放声音


SimpleAudioEngine::sharedEngine()->end();