Najkrótsza formularz (bez instalowania losowych bibliotek)?
public static void play(String filename)
{
try
{
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File(filename)));
clip.start();
}
catch (Exception exc)
{
exc.printStackTrace(System.out);
}
}
Jedyny problem polega na tym, że nie ma dobrego sposobu na zablokowanie tej metody zamykania i usuwania danych po zakończeniu * .wav. clip.drain()
mówi, że blokuje, ale tak nie jest. Klip nie działa PRAWO POstart()
. Jedyny pracujący ale UGLY sposób znalazłem to:
// ...
clip.start();
while (!clip.isRunning())
Thread.sleep(10);
while (clip.isRunning())
Thread.sleep(10);
clip.close();
co nie działa i dlaczego – Bozho