我正在尝试让 JOptionPane 游戏正常运行。我有音频循环的代码。但是,当用户单击输入对话框上的“取消”时,它会退出游戏,但不会关闭音频线程。 发生这种情况时,我需要一些东西来杀死音频线程。
我尝试过其他播放音频 .wav 文件的方法。但当用户点击取消时,它仍然会播放。已尝试使用 JFrames 并处理框架,但这也不会处理音频线程。
URL urlfog = theFog.class.getClassLoader().getResource("thefog.wav");
AudioInputStream audioStreamfog = AudioSystem.getAudioInputStream(urlfog);
AudioFormat formatfog = audioStreamfog.getFormat();
DataLine.Info infofog = new DataLine.Info(Clip.class, formatfog);
Clip audioClipfog = (Clip) AudioSystem.getLine(infofog);
audioClipfog.open(audioStreamfog);
audioClipfog.loop(audioClipfog.LOOP_CONTINUOUSLY);
String name;
do {
name = (String) JOptionPane.showInputDialog(null,"Hello what is your name?","The Fog",JOptionPane.INFORMATION_MESSAGE,icon1,null,"");
}
while (name.equalsIgnoreCase(""));
取消程序后没有错误消息,只是音频仍在播放。
最佳答案
String name;
do {
name = (String) JOptionPane.showInputDialog(null, "Hello what is your name?", "The Fog", JOptionPane.INFORMATION_MESSAGE, icon1, null, "");
if ((name == null)) {
audioClipfog.stop();
System.exit(0);
}
}
while (name.equalsIgnoreCase(""));
关于java - 循环音频和输入对话框取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57949525/