1、soundpool多用于开发中打斗声音配音,用mediaplayer太占用资源并且有很大的延迟,soundpool的资源放在raw文件里,加载到项目里,因此里面的声音文件不建议过大。
public class MainActivity extends ActionBarActivity { private SoundPool pool; private int soundId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pool=new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
// 这一步是异步操作,需要花费一定的时间,如果放在点击事件里,则尤须是异步的,还没加载玩,就play了,里面是空,所有点击时不会有声音的
soundId= pool.load(this,R.raw.ring, 1);
} public void shoot(View v) {
// 这一步是异步操作,需要花费一定的时间 // soundId= pool.load(this,R.raw.ring, 1);
pool.play(soundId, 1, 1, 0, 0, 0.5f);//最后一个参数是声音的播放速度 } }