Clip clip = AudioSystem.getClip();
AudioInputStream a = AudioSystem.getAudioInputStream(new File(path));
clip.open(a);
Dies ist der Code, den ich verwende, um Audio in meinem Programm abzuspielen. Aus dem Java-Profiling kann ich erkennen, dass der Aufruf von clip.open() durchschnittlich weniger als 1 ms dauert. Gelegentlich wird es jedoch zu zufälligen Zeiten für einige Sekunden blockiert, was zu Verzögerungen führt.clip.open (AudioInputStream) hängt manchmal für ein paar Sekunden
Der folgende Screenshot zeigt meinen Java-Profiler. Wie Sie sehen können, wird die exakt gleiche Methode 316 mal ohne Problem aufgerufen. Aber einmal hängt es für 2,4 Sekunden auf Clip.open()
Beachten Sie, wie Clip.open nicht einmal in der unteren angezeigt wird, da die verbrachte Zeit weniger als 0,1 ms ist.
Die Clips, die ich spiele, sind rund 100KB groß, ich verstehe nicht, warum es funktioniert 316 Aufrufe, aber dann einmal hängt es.
Ich habe versucht, schließen auch die Clips nicht, sondern sie alle offen, auch dann das Problem immer noch verlassen auftritt.