具体使用如下:
private SoundPool soundPool;
/**
* 播放小的音频
*/
private void playMiddleMp3(int rawId) {
// 第一个参数为soundPool可以支持的声音数量,这决定了Android为其开设多大的缓冲区,第二个参数为声音类型,在这里标识为系统声音,除此之外还有AudioManager.STREAM_RING以及AudioManager.STREAM_MUSIC等
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
// 第三个参数为声音的优先级,当多个声音冲突而无法同时播放时,系统会优先播放优先级高的
soundPool.load(getActivity(), rawId, 1);
/**
* 第一个参数为id,id即为放入到soundPool中的顺序,比如现在collide.wav是第一个,因此它的id就是1。
* 第二个和第三个参数为左右声道的音量控制。
* 第四个参数为优先级,由于只有这一个声音,因此优先级在这里并不重要。第五个参数为是否循环播放,0为不循环,-1为循环。
* 最后一个参数为播放比率,从0.5到2,一般为1,表示正常播放。
*/
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
soundPool.play(1, 2, 2, 0, 0, 1);
}
});
}