Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在另一个声音开始播放时停止声音_Java_Javax - Fatal编程技术网

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

Java在另一个声音开始播放时停止声音,java,javax,Java,Javax,我正在尝试制作java游戏,现在我正在为游戏实现音乐。问题是,若音乐正在播放,声音开始播放,那个么我想停止音乐 当前代码 Clip clip; public void playSound(File sound) { try { Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(sound)); clip.start(); } c

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

“剪辑”是否存在于
stopSound()上下文中?在我看来,您只是在
playSound
函数中实例化了“clip”对象。我忘记了更新。(我只是复制了所有需要的代码)您正在将实例变量
clip
隐藏在
内部
使用
局部变量clip
尝试块
。将
Clip=AudioSyste.getClip()
替换为
Clip=AudioSyste.getClip()