前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理

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

作者头像
全栈程序员站长
发布2022-07-12 17:30:05
6090
发布2022-07-12 17:30:05
举报

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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()函数是游戏启动时候回调。在游戏启动时候,通常会有一个启动界面,启动界面通常会有一个延迟展示,这是段时间是初始化最佳时机。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118594.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档