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. c#的异或运算符

    int a = 5; int b = 30; Console.WriteLine(a^b); Console.ReadKey();  输出结果是27 这是因为 5的二进制是0000 010130的二进 ...

  2. 简单实现tab标签页切换

    常见面试题: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  3. PHP-HTML重要知识点笔记

    1.用frameset.frame和iframe还实现多窗口 2.在图片上利用映射距离usemap来实现按钮跳转.------第8尾集 3.表单必须要有name和value,因为抓包的时候,可发现必须 ...

  4. php 获取域名的whois 信息

    首先先了解几个文件操作函数: fwrite() 函数写入文件(可安全用于二进制文件). fwrite() 把 string 的内容写入文件指针 file 处. 如果指定了 length,当写入了 le ...

  5. Mysql访问 for橙子小海

    package com.mvc.model.dao; import com.mvc.model.daoutil.DBConn; import com.mvc.model.entity.Blog; 这是 ...

  6. python学习第五天 List和tuple类型介绍及其List切片

    List 和tuple: python提供一种类似C语言数组的类型,但是使用起来确是相当的简洁.那就讲讲这神奇的python中list 和tuple吧. List类型: 1.直接贴代码: L = [' ...

  7. Python Tutorial 学习(一)--Whetting Your Appetite

    Whetting Your Appetite [吊你的胃口]... 这里就直接原文奉上了... If you do much work on computers, eventually you fin ...

  8. UFLDL实验报告2:Sparse Autoencoder

    Sparse Autoencoder稀疏自编码器实验报告 1.Sparse Autoencoder稀疏自编码器实验描述 自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值, ...

  9. Vim的学习心得

    现在的工作是在unix平台,平时是用UE的ftp功能来写代码的,有时候文件大了,传输就很慢,而且经常不是很稳定.下定决心要学学Vim(现在应该没有人用原始的vi了吧),在经过二周的使用后,发现Vim实 ...

  10. [BZOJ 3207] 花神的嘲讽计划Ⅰ【Hash + 可持久化线段树】

    题目链接:BZOJ - 3207 题目分析 先使用Hash,把每个长度为 k 的序列转为一个整数,然后题目就转化为了询问某个区间内有没有整数 x . 这一步可以使用可持久化线段树来做,虽然感觉可以有更 ...