游戏中的声音

按声音的功能不同可分为:音乐和音效。

 

音效的特点是:快、短,即:时间短,反应快。

所以不能使用播放较长时间音乐的播放技术,应该使用 android.media.SoundPool 来实现。

 

SoundPool 类用于管理和播放应用程序里的声音资源,该类将声音文件加载到内存中,出于性能考虑,一般只将时间小于7秒的声音文件用该技术播放。

 

在用 SoundPool 类播放文件时首先要得到一个 SoundPool 类的对象。

可通过其构造方法:public SoundPool (int maxStreams, int streamType, int srcQuality) 得到其对象。

 

public SoundPool () {

int maxStreams, // 设置同时能够播放多少个音效

int streamType, // 设置音频类型,游戏中通常设为:STREAM_MUSIC

int srcQuality // 设置音频文件的质量,现在还没效果,一般设为0

}

 

有了 SoundPool 对象之后,就可以将音频文件加载到该对象中。

 

加载音频文件可用 public int load (Context context, int resId, int priority) 来加载。

public int load (

Context context, // 应用程序的上下文,即当前的Activity, 可以理解为谁来调用这个方法

int resId, // 资源的ID

int priority // 优先级,现在还没作用,设置为1,以便和未来的方法兼容

)

 

现在就可以播放音效了,可以通过 public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) 方法播放音效。

public final int play (

int soundID, // 播放的音乐ID

int leftVolume, // 控制左声道音量

int rightVolume, // 控制右声道音量

int priority, // 优先级,0为最低

int loop, // 循环次数,0为不循环,-1为永久循环

float rate // 回放速度,该值在 0.5 - 2.0 之间,1为正常速度

)

 

在播放的同时也可以暂停音乐:

public final void pause (int streamID) 方法可以暂停播放音乐,streamID 是音效的ID。


文章摘自:http://www.3aj.cn/android/article/2/7851.html

你可能感兴趣的:(Android游戏开发)