Clip clip = AudioSystem.getClip();
AudioInputStream a = AudioSystem.getAudioInputStream(new File(path));
clip.open(a);
これは私のプログラムでオーディオを再生するために使用しているコードです。 Javaのプロファイリングから、私は平均してclip.open()コールが1ミリ秒以下かかることがわかります。しかし、時々ランダムな時間にそれは遅れを引き起こす数秒間ブロックします。clip.open(AudioInputStream)が数秒間ハングアップすることがあります
次のスクリーンショットは、私のJavaプロファイラを示しています。ご覧のように、まったく同じメソッドは316回呼び出され、問題はありません。しかし、Clip.open()で2.4秒間、1回ハングします。
時間が費やされた時間が0.1ms未満であるため、Clip.openがどのように下部に表示されないことに注意してください。
私が再生しているクリップのサイズはすべて約100KBです。なぜそれがうまく動作するのか分かりませんが、316コールが1回ハングします。
私はまた、その後も問題が引き続き発生クリップを閉じますが、オープンそれらすべてを残していない試みました。