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的前缀,否则会报错。
源文件下载