Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理

  1. 云栖社区>
  2. 博客>
  3. 正文

Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理

关东升 2014-08-04 12:15:00 浏览1240
展开阅读全文
Cocos2d-x提供了一个音频CocosDenshion引擎CocosDenshion引擎可以独立于Cocos2d-x单独使用CocosDenshion引擎本质上封装了OpenAL音频处理库。
具体使用的API是SimpleAudioEngine。SimpleAudioEngine有几个常用的函数
void preloadBackgroundMusic (const char *pszFilePath) 预处理背景音乐文件将压缩格式的文件进行解压处理如MP3解压为WAV。
void playBackgroundMusic (const char *pszFilePath) 播放背景音乐。
void stopBackgroundMusic () 停止播放背景音乐。
void pauseBackgroundMusic () 暂停播放背景音乐。
void resumeBackgroundMusic () 继续播放背景音乐。
bool isBackgroundMusicPlaying () 判断背景音乐是否在播放。
unsigned int playEffect (const char *pszFilePath)  播放音效。
void pauseEffect (unsigned int nSoundId)  暂停播放音效参数nSoundId 是playEffect函数返回ID。
void pauseAllEffects () 暂停所有播放音效。
void resumeEffect (unsigned int nSoundId)  继续播放音效参数nSoundId 是playEffect函数返回ID。
void resumeAllEffects ()  继续播放所有音效。
void stopEffect (unsigned int nSoundId) 停止播放音效参数nSoundId 是playEffect函数返回ID。
void stopAllEffects ()  停止所有播放音效。
void preloadEffect (const char *pszFilePath) 预处理音效音频文件将压缩格式的文件进行解压处理如MP3解压为WAV。


无论是播放背景音乐还是音效在播放之前进行预处理是有必要的这个过程是对于音频文件进行解压等处理预处理只需要在整个游戏运行过程中处理依次就可以了。如果不进预处理则会发现在第一次播放这个音频文件时候感觉很“卡”用户体验不好。
预处理相关函数有两个preloadBackgroundMusic和preloadEffect。下面代码是预处理背景音乐和音频
//初始化 背景音乐
SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Jazz.mp3");
//初始化 音效
SimpleAudioEngine::getInstance()->preloadEffect("sound/Blip.wav");
这些预处理过程代码放置到什么地方比较适合呢由于放置到任何一个场景层中当进入到这个层时候都比较“卡”所以最好不要放置到场景层中最好放置到AppDelegate文件中applicationDidFinishLaunching()函数中代码如下。
bool AppDelegate::applicationDidFinishLaunching() {
    … …
    // run
    director->runWithScene(scene);

//初始化 背景音乐
SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Jazz.mp3");
//初始化 音效
SimpleAudioEngine::getInstance()->preloadEffect("sound/Blip.wav");


    return true;
}

applicationDidFinishLaunching()函数是游戏启动时候回调。在游戏启动时候一般会有一个启动界面启动界面一般会有一个延迟展示这是段时间是初始化最佳时机。



更多内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》
本书交流讨论网站http://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程http://v.51work6.com
欢迎加入Cocos2d-x技术讨论群257760386


《Cocos2d-x实战 C++卷》现已上线各大商店均已开售

京东http://item.jd.com/11584534.html

亚马逊http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当http://product.dangdang.com/23606265.html

互动出版网http://product.china-pub.com/3770734

《Cocos2d-x实战 C++卷》源码及样章下载地址

源码下载地址http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1 

样章下载地址http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

欢迎关注智捷iOS课堂微信公共平台

网友评论

登录后评论
0/500
评论
关东升
+ 关注