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

时间:2017-09-15 19:35:25

标签: java javax

我正在尝试制作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方法,那么声音永远不会停止。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

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

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

clip = AudioSystem.getClip();