컴퓨터/cocos2d & objective C

cocos2d 사운드 출력 코드

My App Factory 2010. 3. 15. 16:46

cocos2d에서의 사운드 출력방법입니다. 

개발중인 게임에 효과음이 필요하여 관련소스를 검색해 보니 OpenAL에 대한 자료가 많이 나오더군요. 
OpenAL은 오픈API인 3D Sound Library이며 Loki Software라는 곳에서 개발하였으나 현재, 이회사는 없어지고 Creative와 Apple이 관리하고 있다고 합니다. Apple이 관리하는 오픈소스이기때문인지  XCode설치시 IPhone용 라이브러리에 OpenAL이 포함되어 있음으로 따로 찾으실 필요는 없습니다.  




OpenAL을 직접 이용하셔도 괜찮지만, cocos2d에서는 더 간단하게 사용할수 있도록 CocosDenshin이라는 이름의framework가 준비되어 있습니다. 특별한 효과가 필요없이 단순 재생만 할 경우, 아래의 코드만으로 간단히 구현할수 있습니다. 


//"cocos2d.h"에 import되어 있지 않음으로 별도의 import 선언이 필요합니다. 

#import "SimpleAudioEngine.h"


//효과음 재생

[[SimpleAudioEngine sharedEngine] playEffect:@"effect1.m4a"];

//배경음악재생

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"backgroundMusic.m4a"];

//배경음악재생 중지

[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];




포맷은 기본적으로 "wav", "mp3"을 지원하는 이외에 "m4a"를 지원하고 있습니다. 아이폰에 기본 설치된 음성메모App에서 녹음할 경우, m4a로 파일이 생성됩니다. 필요한 효과음을 직접 음성메모로 녹음한 후, 이를 메일첨부를 이용하여 PC로 전송하여 바로 이용하니 대단히 편리하였습니다. (효과음 구현으로 일정에서 하루를 잡았었는데 허무할 정도로 빨리 끝나버렸습니다. - 덕분에 잠깐 블로그질을.. ^^;)