用不同的按钮播放不同的声音

时间:2015-04-10 03:11:43

标签: android eclipse

我总共有四个按钮,即btn1,btn2,btn3,btn4。同时我有三个声音。 btn1停止/暂停所有声音。 btn1播放sound1,当我按btn2或btn3时,sound1应停止并根据按下的按钮播放相应的声音。我正在尝试使用以下代码:

btn1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub


        mp1.pause();
        mp2.pause();
        mp3.pause();

    }
});

btn2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        if (mp1.isPlaying()) {

            mp1.pause();
        } else {
            mp2.pause();
            mp3.pause();
            mp1.setLooping(true);
            mp1.start();
        }

    }

}
);

btn3.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub



        if (mp2.isPlaying()==true) {

            mp2.pause();
        }else{
        mp2.setLooping(true);
        mp2.start();
        mp3.pause();
        mp1.pause();
        }
    }
});

btn4.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub





        if(mp3.isPlaying()==true){

            mp3.pause();
        }else{
        mp3.setLooping(true);
        mp3.start();
        mp1.pause();
        mp2.pause();}
    }
});

}

P.S我故意使用onclicklistener

请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:0)

建议:

  • 使用stop()调用替换else语句中的暂停调用。
  • 为每个else语句中启动的mp添加一个prepare()调用。
  • 在准备调用之前将调用移至stop()。

每个onClick方法看起来都像:

    if (mp1.isPlaying()) {
        mp1.pause();
    } else {
        mp2.stop();
        mp3.stop();
        mp1.setLooping(true);
        try {
            mp1.prepare();
            mp1.start();
        }
        catch(Exception e)
        {
        }
    }