另一个声音开始播放时的Java停止声音
问题描述:
我试图制作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();
}
但如果我叫stopSound方法听起来那么永远得不到的停止。
任何帮助表示赞赏!
答
clip
的范围是问题所在。 中定义的clip
对象未知于stopSound
。
如果你的对象包含clip
属性,尝试改变的playSound
第一行:
clip = AudioSystem.getClip();
是否 “夹” 在'stopSound()'上下文存在?对我来说,似乎只是在'playSound'函数内实例化“剪辑”对象。 – CarlosCarucce
我忘了更新(我完全复制了所有需要的代码) – MemesTV
你正在用'local variable clip'在'try block'中隐藏实例变量'clip'。用'clip = AudioSyste.getClip()'替换'Clip clip = AudioSyste.getClip()' – Jimmy