Cocos2d-x音乐和音效概述

  你的游戏肯定会需要音乐和音效!Cocos2d-x提供了一个SimpleAudioEngine类支持游戏内的音乐和音效。它可以被用来增加背景音乐,控制游戏音效。

  SimpleAuduioEngine是一个共享的单例对象,可以在代码中的任何地方通过很简单的方式获取到。以下是支持的文件格式。

  支持的音乐格式:

平台 支持的常见文件格式 备注
Android mp3, mid, ogg, wav 可以播放android.media.MediaPlayer所支持的所有格式
iOS aac, caf, mp3, m4a, wav 可以播放AVAudioPlayer所支持的所有格式
Windows mid, mp3, wav

  支持的音效格式:

平台 支持的常见文件格式 备注
Android ogg, wav 对wav的支持不完美
iOS caf, m4a 可以播放Cocos2d-iPhone CocosDesion所支持的所有格式
Windows mid, wav

背景音乐

播放背景音乐

  通过下面的方式,播放一个音频文件作为背景音乐,可以控制背景音乐是否循环播放。

#include "SimpleAudioEngine.h"
using namespace CocosDenshion;auto audio = SimpleAudioEngine::getInstance();//设置背景音乐并不断播放它
audio->playBackgroundMusic("mymusic.mp3",true);//设置背景音乐并只播放一次
audio->playBackgroundMusic("mymusic.mp3",false);

播放音效

  通过下面的方式,将一个音频文件作为音效。

#include "SimpleAudioEngine.h"
using namespace CocosDeshion;auto audio = SimpleAudioEngine::getInstance();//播放音效,只播放一次
audio->playEffect("myEffect.mp3",false,1.0f,1.0f,1.0f);

声音控制

  开始播放音乐和音效后,可能需要对它们进行一些控制,比如暂停、停止、恢复。

暂停

#include "SimpleAudioEngine.h"
using namespace CococsDeshion;auto audio = SimpleAudioEngine::getInstance();//暂停背景音乐
audio->pauseBackgroundMusic();//暂停音效
audio->pauseEffect();//暂停所有音效
audio->pauseAllEffects();

停止

#include "SimpleAudioEngine.h"
using namespace CocosDenshion;auto audio = SimpleAudioEngine::getInstance();//停止背景音乐
audio->stopBackgroundMusic();//停止音效
audio->stopEffect();//停止所有允许的音效
audio->stopAllEffects();

恢复

#include "SimpleAudioEngine.h"
using namespace CocosDenshion;auto audio = SimpleAudioEngine::getInstance();// 恢复背景音乐
audio->resumeBackgroundMusic();// 恢复音效
audio->resumeEffect();// 恢复所有音效
audio->resumeAllEffects();

高级声音功能

配置

  移动设备上的游戏会遇到一些特殊的情景,比如游戏应用被切换至后台又切换回前台,正在玩游戏的时候电话来了,电话打完继续玩游戏,这些你再进行声音控制的时候都要考虑。

  幸运的是,游戏引擎在设置的时候已经考虑到这些情景了,注意在AppDelegate.cpp中,有这样几个方法:

//当应用进程处于非活跃状态的时候会调用这个方法
void AppDelegate::applicationDidEnterBackground()
{Director::getInstance()->stopAnimation();// if you use SimpleAudioEngine, it must be pause// SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
}//当应用进程再次被激活的时候,调用这个功能
void AppDelegate::applicationWillEnterForeground()
{Director::getInstance()->startAnimation();// if you use SimpleAudioEngine, it must resume here// SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
}

  看到了那些被注释的代码吗?如果你有使用SimpleAudioEngine在游戏中播放声音,记得取消这些注释。当这些注释的代码生效,你的游戏就能应对刚才的场景。

预加载

  加载音乐和音效通常是个耗时间的过程,为了防止由加载产生的延时导致实际播放与游戏播放不协调的现象,在播放音乐和音效前,可以预加载音乐文件。

#include "SimpleAudioEngine.h"
using namespace CocosDenshion;auto audio = SimpleAudioEngine::getInstance();//预先加载背景音乐和音效
audio->preloadBackgroundMusic("myMusic1.mp3");
audio->preloadBackgroundMusic("myMusic2.mp3");audio->preloadEffect("myEffect1.mp3");
audio->preloadEffect("myEffect2.mp3");//从缓存中卸载声音。如果你完成了一个声音,且你将不会再游戏中使用它,那么可以卸载它以释放资源。
audio->unloadEffect("myEffect1.mp3");

声音控制

  可以像下面这样,通过代码控制音乐和音效的音量:

#include "SimpleAudioEngine.h"
using namespace CocosDenshion;auto audio = SimpleAudioEngine::getInstance();//将音量指定值设置为浮点数
audio->setEffectsVolume(0.5);
audio->setBackgroundMusicVolume(0.5);

Cocos2d-x音乐和音效概述相关推荐

  1. cocos2d android 音乐,cocos2d-之音乐背景播放(示例代码)

    1.先加入头文件 #include using namespace CocosDenshion;//为了方便以下的函数使用,使用命名空间 2.在init()函数里面加入代码: //(有些新手)在运行以 ...

  2. cocos2dX 学习笔记——音乐、音效和进度条

    每个游戏都需要音乐和音效,当然进度条也是必不可少一种,可以用于于技能CD,所以就用代码介绍和实现一下以上三种. .cpp中 #include "FifthScene.h" #inc ...

  3. 关于COCOS2D-X 中的音乐与音效应用的备注

    UI在游戏中占有很重要的地位,但吸引玩家的除了这些看得到的界面和动画之外,游戏在后台中播放的背景音乐及游戏中打击.动作等音效的配合则会让游戏更受玩家的喜爱.在Cocos2D-X中也为我们封装了一个跨平 ...

  4. 音乐、音效素材库,好听的BGM都在这~

    推荐6个超好用的音频素材网站,免费可商用,热门BGM配乐都能找到,自媒体视频剪辑必备!建议收藏! 1.菜鸟图库 https://www.sucai999.com/audio.html?v=NTYxMj ...

  5. QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰

    音效渲染是音频或音乐播放器最为重要的后处理模块之一.LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人--闫震海,为大家介绍银河音效在QQ音乐播放器中的创新应用,包括 ...

  6. cocos2dX 之音乐与音效

    今天, 我们来学习cocos2dX里面的音乐和音效, 为什么学他呢, 难道你喜欢看无声电影( 旁白: 我就喜欢关着声音玩), 我们不要管旁白了, 她是个疯子 老规矩, 资源准备好: 一首<故宫神 ...

  7. pygame-KidsCanCode系列jumpy-part14-背景音乐及音效

    没有音乐和音效的游戏是没有灵魂的,这回讲解如何处理背景音乐及跳跃音效.加载music及sound的方法,之前已经写过,见:pygame 笔记-8 背景音乐&子弹音效 . 先介绍一个很棒的生成各 ...

  8. 技术答疑丨如何区分游戏短音乐与音效以及配音

    在游戏的声音领域,一般游戏音乐.音效与配音,但是每个类别又有不同的细分,在我们奇亿音乐与游戏厂商的日常沟通中,发现这些问题一直困扰着大家,一起来看看吧. 1.如何区分游戏的音效与配音? 游戏音效也是泛 ...

  9. 游戏音乐/游戏音效/游戏配音优选

    奇亿(北京)音乐有限公司于2011年5月在北京正式成立,是一家专为游戏研发公司和个人游戏研发团队提供最优质的游戏音乐制作.游戏音效制作.游戏配音等服务的专业级制作团队,主要针对PC网络客户端游戏.网页 ...

  10. Qt程序添加音乐和音效,解决QtCreator中给程序添加音乐失败的问题

    Qt程序添加音乐和音效,解决QtCreator中给程序添加音乐失败的问题 最近写了个Qt小游戏,希望添加个背景音乐,却失败了很多次,下面总结一下经验. 添加音乐或者音效一般需要使用multimedia ...

最新文章

  1. python dlib 的安装
  2. 『高级篇』docker容器来说什么是微服务(三)
  3. 用户流失的事前预警与事后分析
  4. 使用jsonp进行跨域访问
  5. java 手写阻塞队列_Java阻塞队列的实现
  6. FileZilla搭建FTP服务器图解教程
  7. gradle创建web工程_Gradle入门:创建Web应用程序项目
  8. 第19次csp认证 202006-2 稀疏向量(C++)
  9. Windows下git安装及使用技巧
  10. Java 蓝桥杯 阶乘计算
  11. 拼多多11.11:无定金、不预售,“好牌子、好实惠”底价直降
  12. windwos::mutex
  13. ESX无法感知VM的心跳
  14. MD5加密——使用Java自带的MessageDigest工具类实现
  15. mysql got signal 11_轻松解决MYSQL错误mysqld got signal 11 ;
  16. 中国总部经济园市场发展策略分析及市场十四五前景展望报告2022-2028年版
  17. verilog简单奇校验
  18. php 月份英文,所有月份的英语单词
  19. 设置esxi主机时间
  20. Qt TableView的简单使用

热门文章

  1. python基础4-序列
  2. 我们为什么需要SDN?
  3. Android应用程序的Activity启动过程简要介绍和学习计划 .
  4. 专业人士对《程序员修炼之道》的赞誉
  5. 《我也能做CTO之程序员职业规划》之十三:用凸透镜选择技术
  6. 2.7 HDFS的使用
  7. 19【推荐系统10】从POLY2、FM到FFM——自动特征交叉的解决方案
  8. 当我们在讨论机器学习时我们在说些什么?
  9. 普通平键的主要尺寸有_你还在为怎样选择床上用品尺寸而烦恼吗?床品尺寸大解析帮到你!...
  10. opengl 矩阵投影代码 shade_LookAt、Viewport、Perspective矩阵