所以,我用Java做了一个游戏,我想在我的应用程序中添加背景音乐。所以,我创建了一个类SoundManager
,并在其中编写了以下代码:
package Managers;
import java.io.File;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import Main.Game;
public class SoundManager {
ClickManager cm;
Clip c;
public SoundManager(ClickManager cm) {
this.cm = cm;
}
public void setFile(String name) {
try {
File file = new File(name);
AudioInputStream ais = AudioSystem.getAudioInputStream(file);
c = AudioSystem.getClip();
c.open(ais);
}catch(Exception e) {}
}
public void loop() {
c.loop(c.LOOP_CONTINUOUSLY);
}
public void stop() {
c.stop();
c.close();
}
public void play() {
c.setFramePosition(0);
c.start();
}
}
字符串
我使用这个类来实现音效和背景音乐。音效似乎工作得很好,但是当我尝试使用这个代码来实现背景音乐时:
cm.sm.setFile("/Game/res/sound/bg.wav");
cm.sm.play();
cm.sm.loop
//cm and sm are the name of classes
型
我的背景音乐播放和预期的一样,也循环。但当我关闭我的窗口,我仍然听到背景音乐。我认为它应该自动停止时,窗口关闭。但我必须重新启动我的电脑停止声音
1条答案
按热度按时间p3rjfoxz1#
我认为你应该覆盖窗口的
windowClosing()
事件并调用cm.sm.stop()
。(To解释一下我所说的“超越”是什么意思:
字符串
)