//音效的音量
int streamVolume;
//定義SoundPool 對象 private SoundPool soundPool;
//定義HASH表 private HashMap<Integer, Integer> soundPoolMap;
/*************************************************************** * Function: initSounds();
* Parameters: null
* Returns: None.
* Description: 初始化聲音系統
* Notes: none.
***************************************************************/
public void initSounds() { //初始化soundPool 對象,第一個參數是允許有多少個聲音流同時播放,第2個參數是聲音類型,第三個參數是聲音的品質 soundPool = new SoundPool(100, AudioManager.STREAM_MUSIC, 100);
//初始化HASH表 soundPoolMap = new HashMap<Integer, Integer>();
//獲得聲音裝置和裝置音量 AudioManager mgr = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
}
/*************************************************************** * Function: loadSfx();
* Parameters: null
* Returns: None.
* Description: 載入音效資源
* Notes: none.
***************************************************************/
public void loadSfx(int raw, int ID) { //把資源中的音效載入到指定的ID(播放的時候就對應到這個ID播放就行了) soundPoolMap.put(ID, soundPool.load(context, raw, ID));
}
/*************************************************************** * Function: play();
* Parameters: sound:要播放的音效的ID, loop:迴圈次數
* Returns: None.
* Description: 播放聲音
* Notes: none.
***************************************************************/
public void play(int sound, int uLoop) { soundPool.play(soundPoolMap.get(sound), streamVolume, streamVolume, 1, uLoop, 1f); }