关于Cocos2d-x中背景音乐和音效的添加
1.首先引入头文件和命名空间
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;
2.在GameScene.cpp的init方法中加载背景音乐和音效到一个SimpleAudioEngine::getInstance();的对象中
//加载音乐,播放背景音乐
auto audioengine = SimpleAudioEngine::getInstance();
audioengine->preloadBackgroundMusic("sound/bgmusic.mp3");
audioengine->preloadEffect("sound/shoot.wav");
audioengine->preloadEffect("sound/hero_down.mp3");
audioengine->preloadEffect("sound/enemy3_down.wav");
audioengine->preloadEffect("sound/enemy1_down.wav");
audioengine->preloadEffect("sound/enemy2_down.wav");
audioengine->preloadEffect("sound/big_spaceship_flying.mp3");
3.播放背景音乐(GameScene.cpp的init方法中)
audioengine->playBackgroundMusic("sound/bgmusic.mp3", true);
4.播放特定音效(满足某个条件的时候,比如飞机爆炸就在满足飞机爆炸的条件下写播放爆炸的音效的语句)
SimpleAudioEngine::getInstance()->playEffect("sound/enemy1_down.wav");
用到的函数
1.virtual void preloadBackgroundMusic(const char * filePath)
预加载背景音乐。
参数
filePath 背景音乐的文件路径。
2.virtual void playBackgroundMusic ( const char * filePath,bool loop = false )
播放背景音乐。
参数
filePath 背景音乐的文件路径或T_SoundResInfo中的FileName字段。
loop 背景音乐是否循环播放。
3.virtual void stopBackgroundMusic ( bool releaseData = false )
停止播放背景音乐。
参数
releaseData 是否释放背景音乐的数据,默认值为false。
4.virtual void pauseBackgroundMusic ( )
暂停播放背景音乐。
5.virtual void resumeBackgroundMusic ( )
恢复播放背景音乐。
6.virtual void rewindBackgroundMusic ( )
将背景音乐倒回起始点播放。
7.virtual void preloadEffect(const char * filePath)
预加载音效文件。
参数
filePath 音效文件路径。
8.virtual unsigned int playEffect ( const char * filePath,bool loop = false,float pitch = 1.0f,float pan = 0.0f,float gain = 1.0f )
播放音效
参数
filePath 音效文件的路径。
loop 是否循环播放,默认为false,不循环。
pitch 频率,正常情况下为1.0,在播放时也可以改变该值。
pan 声道,范围为-1到1,为-1时表示只有左声道,为1时表示只有右声道。
gain 音量增益, 范围为0到1,默认值为1。
返回
声音id。
注解
现在还不能完全支持所有参数,限制的功能如下:
在Samsung Galaxy S2上如果启用了OpenSL那么pitch参数无效;
在emscrippten, win32, marmalade上pitch/pan/gain参数无效
9.virtual void stopEffect ( unsigned int soundId )
停止播放指定的音效。
参数
soundId playEffect返回的资源id。
10.virtual void pauseEffect ( unsigned int soundId )
暂停播放指定音效。
参数
soundId 音效id。
11.virtual void resumeEffect ( unsigned int soundId )
恢复暂停播放指定的音效。
参数
soundId playEffect返回的资源id。
12.virtual void unloadEffect ( const char * filePath )
卸载预加载到内存中的音效文件。
参数
filePath 音效文件的路径。