Si está ejecutando una aplicación más grande, es posible que esta respuesta no se aplique. Pero para una prueba simple con solo ese fragmento de código, este puede ayuda:
Clip.loop() inicia su propio hilo, pero ese hilo no mantendrá viva la JVM. Para que funcione, asegúrese de que el clip no sea el único.
Si dejo fuera Thread.sleep (..) de este fragmento, me sale el mismo problema que tú;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class Snippet {
public static void main(String[] args) throws Exception {
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File("notify.wav"));
Clip clip = AudioSystem.getClip();
clip.open(inputStream);
clip.loop(Clip.LOOP_CONTINUOUSLY);
Thread.sleep(10000); // looping as long as this thread is alive
}
}
¿Ha intentado hacer el ciclo() antes de abrir()? No lo he intentado, pero podría funcionar. –
Acabo de probarlo aquí y parece funcionar ... ¿tiene alguna excepción en el bloque de prueba que debería estar cerca de este código? – Timst
Hola, probé esto también y funciona. ¿Tiene alguna excepción después del primer ciclo? – hudi