I know JavaSound API like this:
audioInputStream = AudioSystem.getAudioInputStream(file); AudioFormat audioFormat = audioInputStream.getFormat(); DataLine.Info info = new Info(SourceDataLine.class, audioFormat); sourceDataLine = (SourceDataLine) AudioSystem.getLine(info); sourceDataLine.open(); sourceDataLine.start(); floatVoiceControl.setValue(-20); byte buf = new byte[0xFF]; int onceReadDataSize = 0;
file is the
But when I tried to play some very small audio very frequently (say, the audio played when a small enemy is killed), it blocks my main thread and make the game very slow.
Is there any alternative or workarounds? I prefer something inside the Java's standard library, since I'm developing a game engine based on Swing.