Android SoundPool用于快速播放小而短的声音 常见于游戏

jopen 12年前

package com.pas.soundpool;    import java.io.IOException;    import android.media.AudioManager;  import android.media.SoundPool;  import android.os.Bundle;  import android.app.Activity;  import android.view.Menu;  import android.view.View;    public class MainActivity extends Activity {        private SoundPool sp;      private int soundid;      @Override      protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);      //初始化需要写在OnCreate中 因为其为异步初始化      // 最多几个资源 资源类型 srcQuality暂无意义 默认用0   sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);   // 第三个参数暂时无用   //加载声音至声音池   soundid=sp.load(this, R.raw.fire, 1);      }        @Override      public boolean onCreateOptionsMenu(Menu menu) {   // Inflate the menu; this adds items to the action bar if it is present.   getMenuInflater().inflate(R.menu.main, menu);   return true;      }        /**       * SoundPool用于快速播放小而短的声音 常见于游戏       *        * @throws Exception       */        public void fire(View v) {   //声音id 左声道 右声道 优先级   //loop loop mode (0 = no loop, -1 = loop forever)   //rate playback rate (1.0 = normal playback, range 0.5 to 2.0)     sp.play(soundid, 1.0f, 0.3f, 0, 0, 2.0f);      }  }