您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 背景音乐播放

2013-07-30 19:10 295 查看


Code

// on "init" you need to initialize your instance

bool HelloWorld::init()

{

bool bRet =
false;

do

{

//////////////////////////////////////////////////////////////////////////

// super init first

//////////////////////////////////////////////////////////////////////////

CC_BREAK_IF(! CCLayer::init());

//MYCode
CCSize size = CCDirector::sharedDirector()->getWinSize();

setTouchEnabled(
true);

std::string items[] =

{

"play background music",

"stop background music",

"pause background music",

"resume background music",

"rewind background music",

};

CCMenu *menu = CCMenu::create();

int count =
sizeof(items) /
sizeof(items[
0]);

for(
int i =
0; i < count; i++)

{

CCLabelTTF *label = CCLabelTTF::create(items[i].c_str(),
"Arial",
24);

CCMenuItemLabel *pMenuItem = CCMenuItemLabel::create(label,
this, menu_selector(HelloWorld::menuCallback));

menu->addChild(pMenuItem, i +
10000);
//note
}

menu->setPosition(ccp(size.width /
2, size.height /
2));

menu->alignItemsVertically();

addChild(menu);

//preload background music
CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(MUSIC_FILE));

//set default volume
CocosDenshion::SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(
0.
5);

bRet =
true;

}

while (
0);

return bRet;

}

void HelloWorld::menuCallback(CCObject *pSender)

{

CCMenuItem *pMenuItem = (CCMenuItem *)(pSender);

int index = pMenuItem->getZOrder() -
10000;

switch(index)

{

case
0:

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

break;

case
1:

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

break;

case
2:

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

break;

case
3:

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

break;

case
4:

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

break;

}

}

注意SimpleAudioEngine前面需要加上CocosDenshion的前缀,否则会报错。

源文件下载

点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: