同时播放多个SoundPool

时间:2016-12-13 17:43:02

标签: android android-mediaplayer soundpool

我有一项活动,我正在使用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);
        }

1 个答案:

答案 0 :(得分:0)

您只需要一个$1SoundPool):

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
相关问题