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

Android 用不同的按钮播放不同的声音,android,eclipse,Android,Eclipse,我一共有四个按钮,即btn1、btn2、btn3、btn4。同时我有三种声音。btn1停止/暂停所有声音。btn1播放sound1,当我按下btn2或btn3时,sound1应根据按下的按钮停止并播放相应的声音。我正在尝试使用以下代码执行此操作: btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-gener

我一共有四个按钮,即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();}
    }
});
}

另外,我有意使用OnClick Listener

请告诉我我做错了什么。

建议:

将else语句中的pause调用替换为stop调用。 添加一个调用以准备在每个else语句中启动的mp。 在呼叫准备之前,将呼叫移动到停止。 每个onClick方法的外观如下所示:

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

如果您不想重叠声音,就不需要使用多个音频播放器。只需使用一个,并根据按下的按钮为其提供正确的URI。这样应用程序就会崩溃,请尝试。