【发布时间】:2017-08-08 04:34:30
【问题描述】:
我一直在绞尽脑汁试图让这个循环的 wav 在第二次点击时暂停, 我哪里错了?
private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {
JToggleButton btn = (JToggleButton) evt.getSource();
if (btn.isSelected()) {
try {
String soundName = "yourSound.wav";
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
} catch (UnsupportedAudioFileException | IOException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
Clip clip = null;
try {
clip = AudioSystem.getClip();
} catch (LineUnavailableException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
clip.open(audioInputStream);
clip.start();
clip.loop(100);
} catch (LineUnavailableException | IOException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
}
【问题讨论】:
-
切换按钮应该只有两种状态。您可以查看this SO 回答以了解如何获取按钮的状态。
-
注册这两个状态不是问题,我已经用打印输出功能对此进行了测试,我的问题是在注册第二次点击时让循环音频停止
-
Clip 对象上有一个
stop方法可用。在方法之外定义剪辑。如果未切换按钮,则剪辑不为空且剪辑isRunning()然后stop()。 -
非常感谢!我真的很感谢你抽出时间伸出援助之手!我试着定义 |私人剪辑剪辑;但它与 Clip clip = null;有冲突,只需将其删除即可修复它,它就像做梦一样!