1、音效引擎
(1)、背景音樂
(1) 預加載背景音樂文件
void preloadBackgroundMusic(const char* filePath);
(2) 停止背景音樂
void stopBackgroundMusic(bool releaseData = false)
(3) 暫停背景音樂
void pauseBackgroundMusic();
(4) 繼續背景音樂
void resumeBackgroundMusic();
(5) 從頭開始背景音樂
void rewindBackgroundMusic();
(6) 取背景音樂音量
float getBackgroundMusicVolume();
(7) 設背景音樂音量
void setBackgroundMusicVolume(float volume);
(2)、音效
(1) 取音效音量
float getEffectsVolume();
(2) 設音效音量
void setEffectsVolume(float volume);
(3) 播放音效
unsigned int playEffect(const char* filePath, bool loop = false,loat pitch = 1.0f, float pan = 0.0f, float gain = 1.0f);
(4) 暫停音效
void pauseEffect(unsigned int soundId);
(5) 暫停所有音效
void pauseAllEffects();
(6) 重開指定音效
void resumeEffect(unsigned int soundId);
(7) 重開所有音效
void resumeAllEffects();
(8) 停止指定音效
void stopEffect(unsigned int soundId);
(9) 停止所有音效
void stopAllEffects();
(10) 預加載音效
void preloadEffect(const char* filePath);
(11) 卸載
void unloadEffect(const char* filePath);
2、實戰紀錄
switch (index)
{
case 0: // "play bg music",
filename = "music.mid";
SimpleAudioEngine::getInstance()->playBackgroundMusic("music.mid");
break;
case 1:// "stop bg music"
SimpleAudioEngine::getInstance()->stopBackgroundMusic();
break;
case 2: // "pause bg music"
SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
break;
case 3: //"resume bg music",
SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
break;
case 4://"rewind bg music",
SimpleAudioEngine::getInstance()->rewindBackgroundMusic();
break;
case 5://"add bg volume",
m_fBGVolume += 0.1;
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(m_fBGVolume);
break;
case 6://"sub bg volume",
m_fBGVolume -= 0.1;
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(m_fBGVolume);
break;
case 7://" play effect"
m_nEffectID = SimpleAudioEngine::getInstance()->playEffect("effect1.wav");
break;
case 8://"stop effect",
SimpleAudioEngine::getInstance()->stopEffect(m_nEffectID);
break;
case 9://"pause effect",
SimpleAudioEngine::getInstance()->pauseEffect(m_nEffectID);
break;
case 10://"resume effect",
SimpleAudioEngine::getInstance()->resumeEffect(m_nEffectID);
break;
case 11://"add effect volume",
m_fEffectVolume = SimpleAudioEngine::getInstance()->getEffectsVolume();
m_fEffectVolume += 0.1;
SimpleAudioEngine::getInstance()->setEffectsVolume(m_fEffectVolume);
break;
case 12://"sub effect volume",
m_fEffectVolume = SimpleAudioEngine::getInstance()->getEffectsVolume();
m_fEffectVolume -= 0.1;
SimpleAudioEngine::getInstance()->setEffectsVolume(m_fEffectVolume);
break;
}