zoukankan      html  css  js  c++  java
  • 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的前缀,否则会报错。

    源文件下载

    点击打开链接

  • 相关阅读:
    微信小程序(三)-事件绑定
    微信小程序(二)-语法学习
    微信小程序(一)-工具创建和结构配置说明 Stable Build
    ============================================ 微信小程序开发学习
    Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)
    Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明-Babel)
    Vue学习笔记-Vue.js-2.X 学习(五)===>脚手架Vue-CLI(PyCharm)
    linux打包压缩命令汇总
    js中函数之函数名带括号与不带括号的区别
    $_FILES error(笔记)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3226001.html
Copyright © 2011-2022 走看看