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