为JavaGUI程序添加背景音乐
以下代码放入GUI的构造器里或初始化函数 init()即可,没有必要new Thread。
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
private Clip c;
private AudioInputStream ais;
File f = new File("bgm.wav");//不支持MP3,请用格式工厂或其他软件把MP3改为wav,直接改后缀名会报错
try {
ais = AudioSystem.getAudioInputStream(f);
c = AudioSystem.getClip();
c.open(ais);
c.setFramePosition(0);
c.start();
} catch (Exception e) {
e.printStackTrace();
}
//如果GUI是线程运行结束后,需要添加停止播放代码
c.stop();
实现点击按钮暂停,再点击播放
private JButton audio;
private int playing = 0;
audio = new JButton(new ImageIcon("audio.png"));
audio.addActionListener(e->{
playing++;
if(playing % 2 == 1){
audio.setIcon(new ImageIcon("audioNo.png"));//划了斜杠的喇叭图标
c.stop();
}else{
audio.setIcon(new ImageIcon("audio.png"));//喇叭图标
c.start();
}
});