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



我正在尝试制作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();
}

但是,如果我致电停止方法,那么听起来永远不会停止。

任何帮助都将受到赞赏!

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

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

clip = AudioSystem.getClip();

最新更新