Я должен поддержать ответ jarnbjo, однако документация не очень хорошая. Подход, который я нашел для воспроизведения одного и того же звука более одного раза, выглядит примерно так:
Сначала прочитайте его в байтовый буфер с именем «data»:
byte[] data;
InputStream in = ClassLoader.getSystemResourceAsStream(filename); //in an applet
AudioInputStream ais = AudioSystem.getAudioInputStream(in);
data = new byte[(int)ais.getFrameLength() * format.getFrameSize()];
byte[] buf = new byte[BUFSIZE];
for (int i=0; i<data.length; i+=BUFSIZE) {
int r = ais.read(buf, 0, BUFSIZE);
if (i+r >= data.length) {
r = data.length - i;
}
System.arraycopy(buf, 0, data, i, r);
}
ais.close();
А затем воспроизведите звук из этого буфера с именем «data» (столько раз, сколько вам нужно):
line.start();
for (int i=0; i<data.length; i+=BUFSIZE) {
line.write(data, i, BUFSIZE);
}
line.drain();
line.stop();
Это на самом деле взято с этого форума: http://www.java -forums.org / advanced-java / 16458-playing-audioinputstream-multiple-times.html . Я не проверял это, но это выглядит хорошо для меня. Посмотрите, как далеко вы продвинулись с этим.