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); } }