Cocos2d-x提供了对声音和音效的支持,能够十分方便地实现音乐与音效的播放、暂停和循环功能。
使用音效引擎
我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文件即可:
1
|
#include "SimpleAudioEngine.h"
|
支持平台与格式
CocosDesion支持的音乐格式如下:
平台 | @H_301_37@支持的常见文件格式 @H_301_37@备注||
---|---|---|
Android | mp3,mid,oggg,wav | 可以播放android.media.MediaPlayer所支持的所有格式 |
iOS | aac,caf,mp3,m4a,221)">可以播放AVAudioPlayer所支持的所有格式 | |
mid,221)">无 |
CocosDesion支持的音效格式如下:
可以播放Cocos2d-iPhone CocosDesion所支持的所有格式 |
预加载
加载音乐和音效通常是个耗时间的过程,因此为了防止由加载产生的延时导致实际播放与游戏播放不协调的现象。在播放音效和音乐前,需要预加载音乐文件。
因为SimpleAudioEngine与许多Cocos2d-x的部件一样,是一个单例类。所以当我们使用以上两个接口时,可以使用以下代码访问其实例:
播放与停止
音频引擎提供了播放与停止的接口,以下介绍相应接口和使用方法:
virtual
@H_403_112@playBackgroundMusic(
@H_403_112@* pszFilePath,
bool
bLoop =
false
);
//播放背景音乐,bLoop表示是否要循环播放
float
pitch = 1.0f,monospace!important; font-size:1em!important; min-height:inherit!important">pan = 0.0f,monospace!important; font-size:1em!important; min-height:inherit!important">gain = 1.0f);
//播放音效,bLoop表示是否要循环播放
@H_403_112@stopAllEffects();
//停止所有音效
|
使用方法:
暂停和恢复
当游戏进入后台时,通常需要暂停播放音乐,当游戏恢复前台运行时,再继续播放音乐。以下介绍几个相关接口以及用法: