我有一项活动,我正在使用12个按钮,声音不同。如果用户同时点击两个按钮,则应该同时播放按钮。
当我使用MediaPlayer
时,我无法做到这一点,然后我学会了SoundPool
,一切都很好。但是有12种不同的声音,我必须写出这么多行,我不要认为这是正确的方法。
这是正确的方法,当我为12声音写这个时,它变得很长?
SoundPool sp1,sp2,sp3;
int id1,id2,id3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.piano);
sp1 = new SoundPool(1, AudioManager.STREAM_MUSIC,1);
sp2 = new SoundPool(1, AudioManager.STREAM_MUSIC,1);
sp3 = new SoundPool(1, AudioManager.STREAM_MUSIC,1);
id1 = sp1.load(this,R.raw.p1,1);
id2 = sp2.load(this,R.raw.p2,1);
id3 = sp3.load(this,R.raw.p3,1);
}
public void p1Click(View v)
{
sp1.play(id1,1,1,1,0,1);
}
public void p2Click(View v)
{
sp2.play(id1,1,1,1,0,1);
}
public void p3Click(View v)
{
sp3.play(id1,1,1,1,0,1);
}
答案 0 :(得分:0)
您只需要一个$1
(SoundPool
):
sp1
(1)注意12表示你可以同时播放12种声音
(2)注意跟踪你的活动声音,以后会有用。 (sp1 = new SoundPool(12, AudioManager.STREAM_MUSIC,1);
id1 = sp1.load(this,R.raw.p1,1);
id2 = sp1.load(this,R.raw.p2,1);
...
sp1.play(id1,1,1,1,0,1);
sp1.play(id2,1,1,1,0,1);
...
返回一个整数):
sp1.play