Witam w aplikacji co jakis czas odtwarzam dzwiek. Sluzy do tego metoda:

   private void playSound(String name) {
        try {
            Clip clip = AudioSystem.getClip();
            URL url = getClass().getResource("res/" + name);
            AudioInputStream ais = AudioSystem.getAudioInputStream(url);
            clip.open(ais);
            clip.start();
        } catch (LineUnavailableException | UnsupportedAudioFileException | IOException ex) {
            ex.printStackTrace();
        }
    }

Jednak po 32 odtworzeniach wyrzuca wyjatek LineUnavailableException. Wklejanie calego kodu nie ma znaczenia bo to zawsze sie dzieje niezaleznie czy bedzie to jedyna instrukcja w pliku, niezaleznie czy bede otwrazal co 20ms czy 100, zawsze po 29 razach wyrzuca wyjatek. Dlaczego tak sie dzieje? Na jakims forum ktos doradzal by zamykac clip, wiec po clip.start() dodalem watek ktory czeka 500ms (zeby dzwiek zdazyl sie odtworzyc) po czym wywlouje clip.close(). Efekt byl taki ze co 32 wywolan caly program zawierszal sie na 2 sekundy po czym szedl dalej i tak w kolko. Czy ktos moze mi wyjasnic to dziwne zachowanie i sposob na jego rozwiazanie?