Java 在后台启动和停止音乐
我正在做一个游戏,里面有背景音乐。我想添加一个静音按钮,启动和停止音乐,但我不知道如何。创建音乐的方法是:Java 在后台启动和停止音乐,java,audio,Java,Audio,我正在做一个游戏,里面有背景音乐。我想添加一个静音按钮,启动和停止音乐,但我不知道如何。创建音乐的方法是: public static void backgroundMusic() { try { AudioInputStream audio = AudioSystem.getAudioInputStream(new File("SoundFile.wav")); Clip clip = AudioSystem.getClip(); clip.open
public static void backgroundMusic() {
try {
AudioInputStream audio = AudioSystem.getAudioInputStream(new File("SoundFile.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
我想做的是在我的按钮操作处理程序中,我想添加一个静音按钮,如果用户愿意,可以启动和停止音频。所以它就像:if(e.getSource()==muteButton){//启动和停止音乐}
我该怎么做呢?谢谢你的帮助 它与声音无关,它与能够访问
剪辑
参考有关。因为您已经创建了对剪辑的本地引用
,其他任何内容都无法访问该引用以更改状态
您需要更改本地引用,使其成为类级引用,从而允许其他方法与之交互
例如
protected static Clip clip;
public static void backgroundMusic() {
try {
if (clip == null) {
AudioInputStream audio = AudioSystem.getAudioInputStream(new File("SoundFile.wav"));
clip = AudioSystem.getClip();
clip.open(audio);
}
if (!clip.isRunning()) {
clip.start();
}
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
public static void stopBackgroundMusic() {
if (clip != null) {
clip.stop();
}
}
ps-我从未真正处理过音频API,因此可能需要进行一些其他调整,但这是您所追求的基本概念…您将需要引用当前活动的
剪辑
,以便您可以与它进行交互methods@MadProgrammer你能解释一下怎么做吗?我以前从未真正处理过声音。。我建议您阅读它,并注意启动/停止功能。