Cocos2d-x提供了对声音和音效的支持,能够十分方便地实现音乐与音效的播放、暂停和循环功能。
使用音效引擎
我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文件即可:
1
|
#include "SimpleAudioEngine.h"
|
支持平台与格式
CocosDesion支持的音乐格式如下:
平台 | 支持的常见文件格式 | 备注 |
---|---|---|
Android | mp3, mid, oggg, wav | 可以播放android.media.MediaPlayer所支持的所有格式 |
iOS | aac, caf, mp3, m4a, wav | 可以播放AVAudioPlayer所支持的所有格式 |
Windows | mid, mp3, wav | 无 |
CocosDesion支持的音效格式如下:
平台 | 支持的常见文件格式 | 备注 |
---|---|---|
Android | oggg, wav | 对wav的支持不完美 |
iOS | caf, m4a | 可以播放Cocos2d-iPhone CocosDesion所支持的所有格式 |
Windows | mid, wav | 无 |
预加载
加载音乐和音效通常是个耗时间的过程,因此为了防止由加载产生的延时导致实际播放与游戏播放不协调的现象。在播放音效和音乐前,需要预加载音乐文件。
通常我们会在进入场景前调用以下两个方法来预加载文件:
1
2
3
|
void
SimpleAudioEngine::preloadBackgroundMusic(
const
char
* pszFilePath);
void
SimpleAudioEngine::preloadEffect(
const
char
* pszFilePath);
|
因为SimpleAudioEngine与许多Cocos2d-x的部件一样,是一个单例类。所以当我们使用以上两个接口时,可以使用以下代码访问其实例:
1
2
3
|