typedef struct {unsigned int soundId;const char* soundFilePath;
}Sound;typedef struct {const char* musicFilePath;
} Music;/** 注意,Andoird下面只支持.ogg**/static Music bgMusic =
{"audio/mainbgmusic.ogg"
};
static Sound testSound =
{0,"audio/clicksound.ogg"
};class AudioManager
{
public:/*  注意,此方法在进入游戏前调用  */static void init();public:/* 预加载 */static void preLoadBgMusic(Music& music);static void preLoadSound(Sound& sound);/* 播放 */static void playMusic(Music& music,bool loop = true);static void playSound(Sound& sound,bool loop = false);/* 暂停 */static void pauseMusic(Music& music);static void pauseSound(Sound& sound);/* 停止 */static void stopMusic(Music& music,bool release = true);static void stopSound(Sound& sound);static void stopAllSound();/* 恢复 */static void resumeMusic();/* 全部结束 */static void end();
};
void AudioManager::init()
{/* 例子 */preLoadBgMusic(bgMusic);preLoadSound(testSound);
}/*********************************************************一些方法的封装*********************************************************/
void AudioManager::preLoadBgMusic(Music& music)
{using namespace CocosDenshion;using namespace cocos2d;music.musicFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(music.musicFilePath);CCLOG(music.musicFilePath);SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(music.musicFilePath);
}void AudioManager::preLoadSound(Sound& sound)
{using namespace CocosDenshion;using namespace cocos2d;sound.soundFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(sound.soundFilePath);SimpleAudioEngine::sharedEngine()->preloadEffect(sound.soundFilePath);
}void AudioManager::playMusic(Music& music,bool loop/* default = true */)
{using namespace CocosDenshion;/* 先判断是否已经在播放,如果在播放,则直接返回 */if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) {return;}SimpleAudioEngine::sharedEngine()->playBackgroundMusic(music.musicFilePath, loop);
}void AudioManager::playSound(Sound& sound,bool loop/* default is false */)
{using namespace CocosDenshion;sound.soundId = SimpleAudioEngine::sharedEngine()->playEffect(sound.soundFilePath, loop);
}void AudioManager::pauseMusic(Music& music)
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}void AudioManager::pauseSound(Sound& sound)
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->pauseEffect(sound.soundId);
}void AudioManager::stopMusic(Music& music,bool release/* default is true */)
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(release);
}void AudioManager::stopSound(Sound& sound)
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->stopEffect(sound.soundId);
}void AudioManager::stopAllSound()
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->stopAllEffects();
}void AudioManager::resumeMusic()
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}void AudioManager::end()
{using namespace CocosDenshion;SimpleAudioEngine::sharedEngine()->end();
}

注意:

进入游戏后,开始初始化资源调用

/* 初始化游戏音效 */
AudioManager::init();

游戏切换到后台调用:

AudioManager::pauseMusic(bgMusic);

游戏重新切换回前台

AudioManager::resumeMusic();

Cocos2dx 下面,对 音乐 和音效简单封装相关推荐

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

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

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

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

  3. cocos2dX 之音乐与音效

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

  4. cocos2d-x游戏中音乐音效的处理

    [i][b]本文为firedragonpzy原创,转载务必在明显处注明: 转载自[Softeware MyZone]原文链接: http://www.firedragonpzy.com.cn/inde ...

  5. cocos2dx基础篇——音乐音效SimpleAudioEngine

    http://shahdza.blog.51cto.com/2410787/1545820/ [SimpleAudioEngine] 音乐音效是每个游戏中不可或缺的部分,一个好的声音会给玩家留下深刻的 ...

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

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

  7. 基于Android的MediaPlayer的音乐播放器的封装

    基于Android的MediaPlayer的音乐播放器的封装 使用过android原生的mediaplayer来做音频播放的同学们,肯定是经历过一些痛苦的,因为android提供了一个状态机,确实这个 ...

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

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

  9. Unity3D学习笔记(六)音乐和音效

    即使AFK魔兽世界已经好多年了,在生活中听到电视或者电台里放的奥格瑞玛的背景音乐的时候还是会虎躯一震.虽然不是联盟玩家,闪金镇狮王之傲旅店的背景音乐依然悠悠回荡在耳边.一个好的游戏没有好的配乐和音效, ...

最新文章

  1. linux mint有没有服务器版,Linux Mint 20“Ulyana”正式版发布
  2. FD32 查询客户信贷管理中,销售值是怎么来的?
  3. Spring事务 Transaction rolled back because it has been marked as rollback-only
  4. DB2 常用操作命令集合
  5. react-native学习路线总结
  6. 红橙Darren视频笔记 界面优化与屏幕适配(上)
  7. 抓包分析360浏览器和360搜索配对使用的安全性-WEB服务端分析
  8. [转] 多线程 《深入浅出 Java Concurrency》目录
  9. 快速上手!mysql数据恢复的方法
  10. cisco packet tracer 5.3.rar_思科cisco的asa防火墙排错命令packet-tracer
  11. 解决wps如何只复制标题文字(不复制正文)
  12. java网络编程小结(黑马程序员基础java总结)
  13. .30-浅析webpack源码之doResolve事件流(2)
  14. 网络安全/渗透测试工具AWVS14.7下载
  15. Oracle查询优化
  16. 给想去北大青鸟或是其他机构培训的同学
  17. 素数判断和大合数分解_素数合数分解公式与原理 质数秘密已解开
  18. Kettle连接 SAP Hana 数据库
  19. 东软、天健、金仕达、杭创、中联..HIS比较
  20. 重拾C#日常积累:DateTime日期的格式化和空值设置

热门文章

  1. 精选算法题(3)——奇偶数据分离
  2. 测试人员,到底要如何才能胜任软件测试工作?
  3. 程序员必备技能之单元测试
  4. 大学生计算机考试题题库,大学生统考计算机一级考试试题题库(供参考)
  5. 如何在NVIDIA(英伟达)官网下载老版本Toolkit-SDK---例如下载CUDA Toolkit 8.0
  6. 接口自动化持续集成实战
  7. Python21天打卡Day13-生成器表达式
  8. 程序员:进不了大厂,就“永无出头之日”了?
  9. react实现浏览器自动刷新_react调用什么刷新页面
  10. 计算机常用汉字输入法的使用,计算机的基本操作汉字输入法--.ppt