Java 如何停止已经播放的声音并立即启动另一个

Java 如何停止已经播放的声音并立即启动另一个,java,android,audio,Java,Android,Audio,当用户先前选择的声音正在播放时,如何停止该声音并立即播放新选择的声音?到目前为止,我的代码只会停止新的声音,但是用户必须再次选择声音才能播放它 public class MainActivity extends Activity { public MediaPlayer mediaPlayer = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCre

当用户先前选择的声音正在播放时,如何停止该声音并立即播放新选择的声音?到目前为止,我的代码只会停止新的声音,但是用户必须再次选择声音才能播放它

public class MainActivity extends Activity {
    public MediaPlayer mediaPlayer = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button a = (Button) findViewById(R.id.First);
        a.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer == null) {
                    mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound);
                    mediaPlayer.stop();
                }
                else {
                    mediaPlayer.start();
                    mediaPlayer = null;
                }
            }
        }
        );
        Button b = (Button) findViewById(R.id.Second);
        b.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer == null) {
                    mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.secondsound);
                    mediaPlayer.stop();
                }
                else {
                    mediaPlayer.start();
                    mediaPlayer = null;
                }
            }
        }
        );

如果有帮助的话,我正在制作一个有30多种声音的音板。我需要对我的代码做哪些(我想是轻微的)更改?任何帮助都将不胜感激

第一个和第二个按钮应该代表什么功能?单击按钮时会播放声音。如果最初单击按钮“First”,则当用户选择按钮“Second”时,按钮“First”播放的声音应停止,第二个声音应开始播放。按钮“First”和“Second”应代表什么功能?单击时,它们会播放声音。如果最初单击了按钮“First”,那么当用户选择按钮“Second”时,按钮“First”播放的声音应该停止,第二个声音应该开始播放。在停止之前检查mediaPlayer是否为null。
If(mediaPlayer!=null&&mediaPlayer.isPlaying)mediaPlayer.stop()
@user2250122如果这些答案中的任何一个对您有帮助,您可以通过接受答案(单击左侧的绿色勾号)和/或向上投票(单击左侧的橙色向上箭头)来回报您的声誉。祝你工作顺利!毛里齐奥谢谢你!!pietmau的代码和AwadKab的调整成功了!停止前检查mediaPlayer是否为空。
if(mediaPlayer!=null&&mediaPlayer.isPlaying)mediaPlayer.stop()
@user2250122如果这些答案中的任何一个对您有帮助,您可以通过接受答案(单击左侧的绿色勾号)和/或向上投票(单击左侧的橙色向上箭头)来回报您的声誉。祝你工作顺利!毛里齐奥谢谢你!!pietmau的代码和AwadKab的调整成功了!
public class MainActivity extends Activity {

    public MediaPlayer mediaPlayer = null;
    public Boolean playing=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button a = (Button) findViewById(R.id.First);
        a.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                (playing)mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound);
                mediaPlayer.start();
                            playing=true;
            }

        });

        Button b = (Button) findViewById(R.id.Second);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                (playing)mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound);
                mediaPlayer.start();
                            playing=true;
            }
        });
    }
}