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[
]);

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

        {

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

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

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

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

        menu->alignItemsVertically();

        addChild(menu);

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

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

bRet = 
true;

    }

    
while (
);

return bRet;

}


void HelloWorld::menuCallback(CCObject *pSender)

{

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

    
int index = pMenuItem->getZOrder() - 
;

    
switch(index)

    {

    
case 
:

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

        
break;

    
case 
:

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

        
break;

    
case 
:

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

        
break;

    
case 
:

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

        
break;

    
case 
:

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

        
break;

    }

}

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

源文件下载

点击打开链接

cocos2d-x 背景音乐播放的更多相关文章

  1. Cocos2d-x中背景音乐播放暂停与继续

    背景音乐播放暂停与继续似乎我们很少使用,事实上也正是如此,背景音乐播放暂停与继续实例代码如下: SimpleAudioEngine::getInstance()->pauseBackground ...

  2. 31.JS实现控制HTML5背景音乐播放暂停

    实现控制网站背景音乐的播放暂停在html5中是非常容易和简单的,仅仅几行代码即可实现.首先在网页中嵌入背景音乐,html5代码为: <script src="http://wuover ...

  3. 【Cocos2d-x 3.x】 场景切换生命周期、背景音乐播放和场景切换原理与源码分析

    大部分游戏里有很多个场景,场景之间需要切换,有时候切换的时候会进行背景音乐的播放和停止,因此对这块内容进行了总结. 场景切换生命周期 场景切换用到的函数: bool Setting::init() { ...

  4. use SWF / Flash in cocos2d-x; cocos2d(cocos2d-x) 直接播放flash / SWF文件

    前段时间移植一个页游到手游,原先页游的项目里面有1000+的Flash人物,宠物动画,特效. 这要是全部重新做一遍,还不累死人?所以就想干脆直接在Cocos2d(x)里面播放SWF文件.(包括场景,过 ...

  5. JS实现控制HTML5背景音乐播放暂停

    首先在网页中嵌入背景音乐,html5代码为: <script src="http://wuover.qiniudn.com/jquery.js"></script ...

  6. android游戏开发系列(2)——背景音乐播放技术

    背景音乐通常播放时间较长,且文件体积也相对较大.这类资源如果放在内存中,一方面给硬件资源本身就很紧缺的手机造成了负担,另一方面通常也没有这方面的需求,放在内存中,在调用时播放速度较快,而长时音乐文件通 ...

  7. 兼容IE-FireFox-Chrome的背景音乐播放

    以music目录下的kn.mp3文件为例: <bgsound src="music/kn.mp3" loop="-1"/> <audio sr ...

  8. Cocos2d-x中停止播放背景音乐

    停止背景音乐播放代码放置到什么地方比较适合呢?例如:在HelloWorld场景中,主要代码如下: bool HelloWorld::init() { return true; } void Hello ...

  9. Cocos2d-x中播放背景音乐

    背景音乐的播放与停止实例代码如下: SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/Jazz.mp3" ...

随机推荐

  1. 微信小程序,大多数人误解的8个问题

    作者:王安,数字天堂DCloud公司创始人兼CEO 注:本文内容包含技术.商业,不懂技术的读者可以只看商业相关的内容.本文仅代表作者一家之言,如有不同意见,欢迎留言讨论~ 8个误解 坊间所传的信息很多 ...

  2. A*算法深入

    A*算法思想容易理解,但要想设计出好的A*算法,则必需要全面深入了解它.在本文章中接下来的内容中,将全面深入探讨该话题.如果对该算法还没有理解的话,则请先查阅上篇文章<A*算法入门>,然后 ...

  3. 【转】javascript变量作用域、匿名函数及闭包

    下面这段话为摘抄,看到网上大多数人使用的是变量在使用的时候声明而不是在顶端声明,也可能考虑到js查找变量影响性能的问题,哪里用就在哪里声明,也很好. 在Javascript中,我们在写函数的时候往往需 ...

  4. 由Python的super()函数想到的

    python-super *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...

  5. isKindOfClass:和isMemberOfClass:-b

    isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given c ...

  6. 关于移动手机端富文本编辑器qeditor图片上传改造

    日前项目需要在移动端增加富文本编辑,上网找了下,大多数都是针对pc版的,不太兼容手机,当然由于手机屏幕小等原因也限制富文本编辑器的众多强大功能,所以要找的编辑器功能必须是精简的. 找了好久,发现qed ...

  7. Windows系统下的TCP参数优化

    1. TCP连接的状态 首先介绍一下TCP连接建立与关闭过程中的状态.TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用.特定数据包以及超时等,具体状态如下所示: CLOSED:初始状态, ...

  8. 面向对象涉及SOLID原则

    S = Single Responsibility Principle 单一职责原则 O = Opened Closed Principle 开放闭合原则  L = Liscov Substituti ...

  9. cf B George and Cards

    题意:给你一个只有‘.’和'#'的n*n的格子,问所有的'#'是不是只属于一个十字叉,如果不是输出NO,否则输出YES. #include <cstdio> #include <cs ...

  10. 几个不错的编辑器BoneEdit

    https://github.com/bonecode?tab=repositories