Android游戏背景音乐音效音量控制

游戏音效就是我们在玩游戏时出现的音乐,这个也是每个游戏必备的一部分,但有是你做游戏的背景音乐有间断的感觉的话,我们可以用 getCurrentPosition()这个方法来判断一下声音播放的偏移。其实这个也是非常简单的。只要我们在代码当中设置好(初始化声音)和(加载音效资源)就可以了,别的就和音乐播放器的代码差不多,像开始,停止。不多说了,我们还是先来看看代码当中是怎么实现音效的吧:

[代码] [Java]代码

01//音效的音量

02  intstreamVolume;

03

04  //定义SoundPool对象

05  privateSoundPoolsoundPool;

06

07  //定义HASH表

08  privateHashMapsoundPoolMap;

09

10  /***************************************************************

11  *Function:initSounds();

12  *Parameters:null

13  *Returns:None.

14  *Description:初始化声音系统

15  *Notes:none.

16  ***************************************************************/

17  publicvoidinitSounds(){

18  //初始化soundPool对象,第一个参数是允许有多少个声音流同时播放,第2个参数是声音类型,第三个参数是声音的品质

19  soundPool=newSoundPool(100,AudioManager.STREAM_MUSIC,100);

20

21  //初始化HASH表

22  soundPoolMap=newHashMap();

23

24  //获得声音设备和设备音量

25  AudioManagermgr=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

26  streamVolume=mgr.getStreamVolume(AudioManager.STREAM_MUSIC);

27  }

28

29  /***************************************************************

30  *Function:loadSfx();

31  *Parameters:null

32  *Returns:None.

33  *Description:加载音效资源

34  *Notes:none.

35  ***************************************************************/

36  publicvoidloadSfx(intraw,intID){

37  //把资源中的音效加载到指定的ID(播放的时候就对应到这个ID播放就行了)

38  soundPoolMap.put(ID,soundPool.load(context,raw,ID));

39  }

40

41  /***************************************************************

42  *Function:play();

43  *Parameters:sound:要播放的音效的ID,loop:循环次数

44  *Returns:None.

45  *Description:播放声音

46  *Notes:none.

47  ***************************************************************/

48  publicvoidplay(intsound,intuLoop){

49  soundPool.play(soundPoolMap.get(sound),streamVolume,streamVolume,1,uLoop,1f);

50}

你可能感兴趣的:(android)