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

    源文件下载

    点击打开链接

  • 相关阅读:
    关于DOM节点的逆序
    javascript 巧妙的数组去重
    Canvas 学习笔记1
    web前端开发规范
    关于使用new和不使用new
    先知JS分享第二讲 数据类型与操作符
    关于谷歌console的小技巧
    菜鸟读jQuery 2.0.3 源码分析系列(2)
    菜鸟读jQuery 2.0.3 源码分析系列(1)
    local npm module ("*****") not found
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3226001.html
Copyright © 2011-2022 走看看