按声音的功能不同可分为:音乐和音效。
音效的特点是:快、短,即:时间短,反应快。
所以不能使用播放较长时间音乐的播放技术,应该使用 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