您想使用声音池
http://developer.android.com/reference/android/media/SoundPool.html
在您的“res”文件夹中添加一个名为“raw”的文件夹并将您的声音文件放在那里。我使用了 .m4a 文件,它对我有用,但我不确定还支持哪些其他格式。
这是我在应用程序中使用的代码片段,使用以下代码播放声音:
int flip = 1,scratch = 2,wrong = 3,correct = 4,pop = 5;
SoundPool soundPool;
HashMap<Integer, Integer> soundPoolMap;
setVolumeControlStream(AudioManager.STREAM_MUSIC);
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(flip, soundPool.load(this, R.raw.flip, 1));
soundPoolMap.put(scratch, soundPool.load(this, R.raw.scratch, 1));
soundPoolMap.put(wrong, soundPool.load(this, R.raw.wrong, 1));
soundPoolMap.put(correct, soundPool.load(this, R.raw.correct, 1));
soundPoolMap.put(pop, soundPool.load(this, R.raw.pop, 1));
soundPool.play(soundPoolMap.get(flip), 1, 1, 1, 0, 1);
编辑:几乎完全忽略了你问题的一部分。您需要使用 switch/case 范围来确定单击了哪个按钮并相应地对其应用正确的声音:
public void listen(View v) {
switch(v.getId()) {
case (R.id.button1):
soundPool.play(soundPoolMap.get(flip), 1, 1, 1, 0, 1);
break;
case (R.id.button2):
soundPool.play(soundPoolMap.get(scratch), 1, 1, 1, 0, 1);
break;
case (R.id.button3):
...
}
}