cocos2d-x 背景音乐播放


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的前缀,否则会报错。

源文件下载

点击打开链接

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值