我最近一直在學習如何在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);
}
}
只需重新啓動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
如果它已經播放,您想重新啓動它?這是一個停止()重置()和一個播放()左右...不知道 –