cocos2dx2.2添加音乐音效以及设置音量

cocos2dx2.2添加音乐音效以及设置音量(非原创)

cocos2d-x使用SimpleAudioEngine类作为实现跨平台的音乐引擎,首先需要引入头文件。

对于声音文件,我们可以提前加载,这样会提高游戏的执行效率,但却会增加内存消耗,编码时,我们需要根据实际情况决定是否要进行预加载处理。

好了,我们写一个例子先,同样还是新建一个Music项目。

1、引入头文件以及相应的库

#include "cocos2d.h"  
#include "SimpleAudioEngine.h"  
using namespace CocosDenshion;  

2、预加载音乐文件(可以不进行提前加载)

    1.    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)  
    2.        #define EFFECT_FILE        "effect2.ogg"  
    3.    #elif( CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE)  
    4.        #define EFFECT_FILE        "effect1.raw"  
    5.    #else  
    6.        #define EFFECT_FILE        "effect1.wav"  
    7.    #endif   
    8.      
    9.    #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)  
    10.        #define MUSIC_FILE        "music.mid"  
    11.    #elif (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX )  
    12.        #define MUSIC_FILE        "background.ogg"  
    13.    #elif (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)  
    14.        #define MUSIC_FILE        "background.wav"  
    15.    #else  
    16.        #define MUSIC_FILE        "background.mp3"  
    17.    #endif  

3、使用音乐以及音效,以及控制音量

我们更改了HelloWorld的退出按钮,可以根据flag的值来做相应的音乐处理。

1.    void HelloWorld::menuCloseCallback(CCObject * pSender)  
    2.    {int flag = 0;    //我这里直接定义一个flag,大家可根据游戏项目的需要传入flag的值  
    3.        switch(flag)  
    4.        {  
    5.        // 背景音乐部分:  
    6.        case 0:  
    7.            SimpleAudioEngine::sharedEngine()->playBackgroundMusic(MUSIC_FILE, true);   //播放 
    8.            break;  
    9.        case 1:  
    10.            SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();  // 停止播放  
    11.            break;  
    12.        case 2:  
    13.            SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();   //暂停播放  
    14.            break;  
    15.        case 3:  
    16.            SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();   // 恢复播放  
    17.            break;  
    18.        case 4:  
    19.            SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();   //从头重新播放  
    20.            break;  
    21.        case 5:  
    22.            if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())    //判断当前是否播放背景音乐  
    23.            {  
    24.                CCLOG("background music is playing");  
    25.            }  
    26.            else  
    27.            {  
    28.                CCLOG("background music is not playing");  
    29.            }  
    30.            break;  
    31.        // 音效部分  
    32.        case 6:  
    33.           unsigned int m_nSoundId = SimpleAudioEngine::sharedEngine()->playEffect(EFFECT_FILE);   //播放  
    34.            break;  
    35.        case 7:  
    36.            unsigned int m_nSoundId = SimpleAudioEngine::sharedEngine()->playEffect(EFFECT_FILE, true);  
    37.            break;  
    38.        case 8:  
    39.            SimpleAudioEngine::sharedEngine()->stopEffect(m_nSoundId);   //停止播放  
    40.            break;  
    41.        case 9:  
    42.            SimpleAudioEngine::sharedEngine()->unloadEffect(EFFECT_FILE);  //去除音效  
    43.            break;  
    44.            // add bakcground music volume  
    45.        case 10:  
    46.            SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() + 0.1f);//增加音量  
    47.            break;  
    48.        case 11:  
    49.            SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() - 0.1f);//降低音量  
    50.            break;  
    51.        case 12:  
    52.            SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() + 0.1f);//增加音量  
    53.            break;  
    54.        case 13:  
    55.            SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() - 0.1f);//降低音量  
    56.            break;  
    57.        case 14:  
    58.            SimpleAudioEngine::sharedEngine()->pauseEffect(m_nSoundId);//暂停音效  
    59.            break;  
    60.        case 15:  
    61.            SimpleAudioEngine::sharedEngine()->resumeEffect(m_nSoundId);//恢复音效  
    62.            break;  
    63.        case 16:  
    64.            SimpleAudioEngine::sharedEngine()->pauseAllEffects();//暂停所有音效  
    65.            break;  
    66.        case 17:  
    67.            SimpleAudioEngine::sharedEngine()->resumeAllEffects();//恢复所有音效  
    68.            break;  
    69.        case 18:  
    70.            SimpleAudioEngine::sharedEngine()->stopAllEffects();//停止所有音效  
    71.            break;  
    72.        }  
    73.          
    74.    }  
时间: 2024-12-20 11:05:43

cocos2dx2.2添加音乐音效以及设置音量的相关文章

cocos2dx基础篇(19)——音乐音效SimpleAudioEngine

[唠叨] 本节比较简单,主要讲讲cocos2dx引擎中的音乐音效. [致谢] http://gl.paea.cn/contents/f86d1f6e2a52e7ea.html [术语] 单例类:说的通俗一点,它就是一个全局静态类.第一次调用时会创建一个全局静态对象,整个游戏的运行过程中会一直存在,全局都可以访问. [SimpleAudioEngine] 音乐音效是每个游戏中不可或缺的部分,一个好的声音会给玩家留下深刻的印象,当一听到游戏的声音,就会不自觉得说出游戏的名称来.就像<中国好声音>一

拍大师添加音乐、音效教程,拍大师使用方法介绍

大家在用拍大师制作视频的时候,如果没有音乐和音效的话肯定是一个不完整的视频,很多人也喜欢在视频加一些自己喜欢的音乐,另外在一些场合加一些特定的音效,这样视频就会更加生动,那拍大师怎么添加音乐呢?看看小编给大家推荐的拍大师添加音乐.音效教程吧! 一.添加音乐1.打开拍大师的视频编辑界面,在左上方点[音乐]转到音乐界面,如下图所示. 2.点击[本地添加]按钮,在弹出的窗口里选择电脑上的音乐文件路径(比如你的音乐放在D盘/music就打开这里),再点击打开,显示导入成功后,音乐界面会显示导入的音乐文件

Quick-cocos2d-x3.3 Study (二十)--------- 音乐音效

音乐音效 接下来,我们来给游戏添加背景音乐和音效. 首先我们要知道的是,Quick 引擎封装了一套与声音相关的 audio 模块,我们可以通过它方便的调用声音相关的 API 来控制声音.audio 模块提供了众多的方法和属性,比如预加载.播放.暂停.停止.恢复声音等等. 我们还需知道,游戏中的声音背引擎分为了两种:一种是Music(指背景音乐),另一种则是Sound(指游戏音效,也就是除了背景音乐以外的声音). 下面是一些控制背景音乐相关的常用 API: 预载入一个音乐文件:audio.prel

Unity3D音乐音效学习笔记

对于Unity3D的音乐音效这块一直没有好好的看过,现在准备好好的研究一下,并作为一个笔记记录下. 支持格式 在游戏中,一般存在两种音乐,一种是时间较长的背景音乐,一种是时间较短的音效(比如按钮点击,开枪音效等). Unity3D支持下面几种音乐格式: AIFF:适用于较短的音乐文件可用作游戏打斗音效 WAV:适用于较短的音乐文件可用作游戏打斗音效 MP3:适用于较长的音乐文件可用作游戏背景音乐 OGG:适用于较长的音乐文件可用作游戏背景音乐 音乐组件 Unity3D中对音乐进行了封装,总体来说

音乐音效——08音频混合器

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 音频混合器(Audio Mixer)可以将场景中Audio Source的声音添加效果并进行混合 打开Audio Mixer窗口:Window>Audio Mixer Groups栏下显示的是当前混合器的Group组 音频混合器都会有一个Master组,这个组是不能被移除的,任何其他组都是他的子组 Audio Mixer Group是一个或者一组音频的混合,它的Signal Chain信号链提供了调整音量衰减和音调的功能,我们可以添

tookit2D使用6——给场景添加音乐

1给单个场景添加音乐1 在2D游戏中取消游戏的3D音效->apply2 创建空的游戏对象——>添加audio source组件——>设置组件属性3 把新创建的游戏对象添加到摄像机的子物体 2在gui按钮中可以直接添加声音,(注意声音的选择,如果点击游戏按钮没有声音是因为声音要等几秒才能发声) 3让所有的场景比方同一个音乐1 创建空的游戏对象——>添加audio source组件——>设置组件属性2 给该对象添加脚本 void Start() { DontDestroyOnLo

(转)CocosCreator零基础制作游戏《极限跳跃》九、为游戏添加声音音效功能

CocosCreator零基础制作游戏<极限跳跃>九.为游戏添加声音音效功能 游戏的声音很重要,我们在这个游戏中需要加2个音效,一个背景音乐...第一个音效在玩家与障碍物碰撞的地方加碰撞音效,第二个在玩家主角坠落到屏幕底部的时候加游戏结束的音效.然后游戏开始的时候加载背景音乐. 我们一开始在MainScene场景中的声音图标节点就是我们用来控制声音的开关.. 首先修改guawileft.js脚本,添加音效资源,在onload设置声音大小.代码: 01 //guanwileft.js 02  

如何在网站中添加音乐

来源:http://www.ido321.com/1042.html 发现有很多的个人博客中添加了背景音乐,以增强用户体验.LZ搜集到了两种在网站中添加音乐的方式. 一.豆瓣的FM         这个非常简单,一段代码就可以实现. <p> <iframe name="iframe_canvas" src="http://douban.fm/partner/baidu/doubanradio" height="200" widt

在网页中添加音乐

最近在折腾一个网页,对于一个有强迫症的人来说,就想在网页中插入音乐,(当做背景音乐),然后自己百度了好多资料:就在这里总结一下: 第一步: 我们需要在网页添加一些代码:我也不喜欢那种代码太长的:自己就整理了一下:这里我添加的都是单曲,(单曲循环的那种),添加多个背景音乐,代码比较长,我就没去折腾,(其实是折腾了一种方法,没搞出来,就放弃了): 第一种代码: <EMBED src="http://img.xiaonei.com/photos/20060603/1510/orig51097.w