2014년 3월 14일 금요일

[cocos2d-x 3.0] 사운드(Sound) 관련

cocos2d-x에서는 CocosDenshion이라는 사운드라이브러리를 사용한다.

그래서 네임스페이스를 매번 입력하지 않으려면 상단에 using namespace CocosDenshion;이라고 선언해야 합니다.

사운드는 크게 배경음악효과음악으로 구분한다.

1. 재생 관련(Play)
void playBackgroundMusic(const char *pszFilePath, bool bLoop)
파일명과 반복여부를 입력하면 된다. 배경음악의 경우, 한번에 1개의 배경음악만 플레이된다. 즉, 동시의 2개 이상의 배경음악을 플레이 할 수는 없다.
SimpleAudioEngine::getInstance()->playBackgroundMusic("music.wav", false);

unsigned int playEffect(const char *pszFilePath, bool bLoop)
위와 동일하다. 다만, 효과음의 경우는 동시에 여러개의 플레이가 가능하다. 플레이하면 지정된 효과음의 고유번호가 리턴된다.
SimpleAudioEngine::getInstance()->playEffect("effect.wav", false);



2. 정지 관련(Stop)
stopBackgroundMusic()
stopBackgroundMusic(bool bReleaseData)
배경음악을 정지한다. 또한 종료할때 로딩된 배경음악을 완전히 해제할지를 지정할수 있다.
SimpleAudioEngine::getInstance()->stopBackgroundMusic();

stopEffect(unsigned int nSoundId)
효과음의 번호를 지정해서 해당 효과음만 정지한다.
SimpleAudioEngine::getInstance()->stopEffect(soundID);

stopAllEffects()
현재 플레이되고 있는 모든 효과음을 정지한다.
SimpleAudioEngine::getInstance()->stopAllEffects();



3. 일시 정지, 재시작(Pause, Resume)
pauseBackgroundMusic()
현재 플레이되고 있는 배경음악을 일시정지한다.
SimpleAudioEngine::getInstance()->pauseBackgroundMusic()

resumeBackgroundMusic()
일시정지한 배경음악을 정지된 위치부터 다시 플레이한다.
SimpleAudioEngine:: getInstance()->resumeBackgroundMusic()

pauseEffect(unsigned int nSoundId)
해당되는 효과음의 플레이를 일시정지한다.
SimpleAudioEngine:: getInstance()->pauseEffect(unsigned int nSoundId)

resumeEffect(unsigned int nSoundId)
일시정지된 해당음을 정지된 위치부터 다시 플레이한다.
SimpleAudioEngine:: getInstance()->resumeEffect(unsigned int nSoundId)

pauseAllEffects()
현재 플레이되고 있는 모든 효과음의 플레이를 일시정지한다.
SimpleAudioEngine:: getInstance()->pauseAllEffects()

resumeAllEffects()
일시정지한 모든 효과음을 정지된 위치부터 다시 플레이한다.
SimpleAudioEngine::sharedEngine()->resumeAllEffects()




4. 볼륨(Volume)
setBackgroundMusicVolume(float volume)
배경음악의 볼률을 지정한다. 범위는 0.0 ~ 1.0이다.
SimpleAudioEngine:: getInstance()->setBackgroundMusicVolume(float volume)

setEffectsVolume(float volume)
효과음의 볼륨을 지정한다.
SimpleAudioEngine:: getInstance()->setEffectsVolume(float volume)

getBackgroundMusicVolume()
배경음악의 볼륨 값을 가져온다.
float SimpleAudioEngine:: getInstance()->getBackgroundMusicVolume()

getEffectsVolume()
효과음의 볼륨의 값을 가져온다.
float SimpleAudioEngine:: getInstance()->getEffectsVolume()




5. 로딩(preLoad)
preloadBackgroundMusic(const char *pszFilePath)
배경음악을 미리 로딩해둔다.
SimpleAudioEngine:: getInstance()->preloadBackgroundMusic(const char *pszFilePath)

preloadEffect(const char *pszFilePath)
효과음을 미리 로딩해둔다.
SimpleAudioEngine:: getInstance()->preloadEffect(const char *pszFilePath)




6. 재생여부확인
isBackgroundMusicPlaying()
배경음악의 플레이 여부를 리턴한다.
bool SimpleAudioEngine:: getInstance()->isBackgroundMusicPlaying()










댓글 없음: