程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> cocos2d-x 添加背景音樂和音效-SimpleAudioEngine,cocos2d背景顏色

cocos2d-x 添加背景音樂和音效-SimpleAudioEngine,cocos2d背景顏色

編輯:C++入門知識

cocos2d-x 添加背景音樂和音效-SimpleAudioEngine,cocos2d背景顏色


首先,要想使用音效,需要啟用音效引擎庫CocosDenshion中的SimpleAudioEngine類,

#include "SimpleAudioEngine.h" 

CocosDenshion引擎庫實際上是對系統音頻API的封裝,因此它支持的音頻文件格式與平台有關。具體不同平台的格式支持請查閱資料,通常我們就用各個平台都支持的格式,音樂:mp3;音效:wav。

具體的使用做一個簡單的介紹,比較簡單:

音樂:同一時間,只能有一個背景音樂在播放。

void preloadBackgroundMusic( 音樂文件);    //加載音樂
void playBackgroundMusic( 音樂文件, bool); //播放音樂, true代表循環播放, false代表不循環
void pauseBackgroundMusic();              //暫停
void resumeBackgroundMusic();             //繼續
void stopBackgroundMusic();               //停止
void rewindBackgroundMusic();             //從頭播放
bool isBackgroundMusicPlaying();          //是否正在播放
void setBackgroundMusicVolume();          //設置音量
float getBackgroundMusicVolume();         //獲取音量

聲音:與音樂不同的是,同一時間可以有多個音效在播放,引擎在播放音效的時候會返回該次播放音效的ID,方便之後的控制。

void preloadEffect( 音效文件 )
void unloadEffect( 音效文件 )
int playEffect( 音效文件, 是否重復 ) //返回一個音效id作為標識
void stopEffect( 音效ID )
void stopAllEffects() 
void pauseEffect( 音效ID )
void pauseAllEffects()
void resumeEffect( 音效ID )
void resumeAllEffects() 
float getEffectsVolume()
void setEffectsVolume() 

這裡呢,在播放音效的時候需要指定是否循環播放,默認是不循環。音效還有一點,就是沒有“是否正在播放”的判斷,如果需要判斷的話,需要該引擎底層,自己仿照音樂播放判斷的方式寫一個。

SimpleAudioEngine是個單例類,使用方式:SimpleAudioEngine::sharedEngine()->playEffect( 音效文件 );

注意:

播放背景音樂前,一定要提前加載背景音樂文件,音效不需要。
在退出後且不再需要音樂時,要調用end()方法來釋放引擎占用的資源。

 


cocos2d-x播放不了背景音樂

先用preloadBackgroundMusic加載一下音樂再試試看,另外背景音樂請使用mp3格式的。如果還不行的話,很小的可能是你的mp3格式不標准,可以使用轉換工具重新進行下轉換然後再試試應該就可以解決問題了。還有就是注意音樂所在的位置是否正確。
 

cocos2d-x 黑屏之後 音效 丟失問題

檢查AppDelegate::applicationDidEnterBackground 和AppDelegate::applicationWillEnterForeground兩個函數中的操作,第一個是程序進入後台後的操作,第二個是程序返回前台後的操作
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved