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. HDU 1207

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1207 四柱汉诺塔问题 当 r = (sqrt(8*n+1)-1)/2 时, 存在 count = (n ...

  2. Expression Trees

    Expression Trees 只是想简单说下表达式树 - Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译 ...

  3. MAC——laravel环境

    apache: 目录:etc/apache2 重启:sudo apachectl restart PHP: 把/etc/php.ini.default复制并重命名/ect/php.ini 打开Load ...

  4. C++标准库的数值极限numeric_limits

    包含头文件:#include<limits> 它是一个模板类,它主要是把C++当中的一些内建型别进行了封装,比如说numeric_limits<int>是一个特化后的类,从这个 ...

  5. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  6. javascript类型系统之Array

    原文:javascript类型系统之Array 目录 [1]数组创建 [2]数组操作 [3]继承的方法 [4]实例方法 数组转换 数组检测 栈和队列 排序方法 操作方法 位置方法 前面的话 数组是一组 ...

  7. ArrayList LinkedList Vector

    ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...

  8. 【HDOJ】2645 find the nearest station

    裸BFS. /* 2645 */ #include <iostream> #include <queue> #include <cstdio> #include & ...

  9. BZOJ1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果

    1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 4 ...

  10. 搜索(DLX):HDU 3663 Power Stations

    Power Stations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...