Java 当另一个声音开始播放时停止声音

Java stop sound when another sound is starting to play

我正在尝试制作 java 游戏,现在我正在为游戏添加音乐。问题是如果音乐正在播放并且声音开始播放那么我想停止音乐。

当前代码

Clip clip;

public void playSound(File sound) {
    try {
        Clip clip = AudioSystem.getClip();
        clip.open(AudioSystem.getAudioInputStream(sound));
        clip.start();
    } catch(Exception e) {
        System.out.println("Error with playing sound.");
        e.printStackTrace();
    }
}

public void stopSound() {
    if(clip == null) return;
    clip.stop();
}

但是如果我调用 stopSound 方法,那么声音永远不会停止。

感谢任何帮助!

clip 的范围是问题所在。 playSound 中定义的 clip 对象对 stopSound 是未知的。

如果您的对象包含 clip 属性,请尝试将 playSound 的第一行更改为:

clip = AudioSystem.getClip();