我正在制作一个游戏,里面有背景音乐。我想添加一个启动和停止音乐的静音按钮,但我不知道该怎么做。创作音乐的方法是:
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) { //开始和停止音乐 }
我该怎么做呢?感谢您的帮助!
它与声音无关,它与能够访问Clip
参考。因为您已经创建了本地引用Clip
,其他任何东西都无法访问引用来更改状态......
您需要更改本地引用,使其成为类级别引用,允许其他方法与其交互......
例如...
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,因此您可能还需要进行一些其他调整,但这是您所追求的基本概念...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)