In questo esempio sono stati utilizzati due file in formato wav posizionati nei path "\res\raw\bip_1.wav" e "\res\raw\bip_2.wav" che verranno riprodotti rispettivamente al click dei pulsanti "btn_ok" e "btn_no"
public class Example extends Activity {
private SoundManager soundManager = new SoundManager();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.example);
soundManager.initSound(getBaseContext());
soundManager.addSound(1, R.raw.bip_1);
soundManager.addSound(2, R.raw.bip_2);
/* ... */
Button btnOk = (Button) findViewById(R.id.btn_ok);
btnOk.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
soundManager.playSound(1);
}
});
Button btnNo = (Button) findViewById(R.id.btn_no);
btnNo.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
soundManager.playSound(2);
}
});
}
}
Classe da istanziare: public class SoundManager {
private SoundPool soundPool;
private HashMap hMap;
private AudioManager audioManager;
private Context context;
public void initSound(Context theContext) {
context = theContext;
soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
hMap = new HashMap();
audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
}
public void addSound(int index, int SoundID)
{
hMap.put(index, soundPool.load(context, SoundID, 1));
}
public void playSound(int index)
{
float streamVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
soundPool.play((Integer) hMap.get(index), streamVolume, streamVolume, 1, 0, 1f);
}
}