Java:多次播放声音
我最近一直在学习如何在java中添加声音。目前,我有这样的代码,但它并不总是在正确的时间播放,有时根本不能播放。每当在正确的时机触发play()
方法时,我怎样才能播放声音?顺便说一下,我每次都在component
上发生这种情况。Java:多次播放声音
public class Sound {
private File sndFile0;
private AudioInputStream au;
private Clip cl;
private DataLine.Info info;
public Sound() {
try {
sndFile0 = new File(getClass().getResource("/sound/vir1.wav").toURI());
au = AudioSystem.getAudioInputStream(sndFile0);
info = new DataLine.Info(Clip.class, au.getFormat());
cl = (Clip) AudioSystem.getLine(info);
cl.open(au);
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException | URISyntaxException e) {
e.printStackTrace();
}
}
public void play() {
cl.start();
cl.setFramePosition(0);
}
}
已解决。我所做的是每次点击组件时都继续加载声音文件。
这是重复播放声音的唯一方法吗? –
这可能是一个不太合适的做法。我不会推荐这样做。第三方库可能更适合。 – CoderMusgrove
好的。这种方法适用于我,直到我有很多连续的声音(自动枪射击),然后我得到一个内存不足的崩溃。 –
只需重新启动Type.STOP。 http://stackoverflow.com/questions/557903/how-can-i-wait-for-a-java-sound-clip-to-finish-playing-back –
@MichaelD。这很奇怪,如果我快速点击组件或剪辑结束后,声音将重新启动,否则如果它位于中间某处,它将不会执行任何操作。我将播放代码更改为:http://pastebin.com/KNAmd9Mc – CoderMusgrove
如果它已经播放,您想重新启动它?这是一个停止()重置()和一个播放()左右...不知道 –