關於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 音效文件的路徑。

 








 





 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM