Allora,vi ringrazio per le vostre risposte,e effettivamente avete ragione,non chiudevo lo stream.
Allora ho modificato l'applicazione in modo che inserisse gli oggetti in un arraylist con un pulsante,mentre con un altro gli chiudesse tutti e creasse un nuovo arraylist,
Ora,dopo aver premuto un po di volte il pulsante musica,sono passato da 20mb di memoria a 200.
Mi aspetterei con il pulsante chiudi di tornare sui 20,invece al massimo arrivo sui 100-130.
Vi ripasso l'applicazione con il pulsante chiudi:http://www.mediafire.com/?2v24rhah25zc5ze
In qualsiasi caso la musica la carico in questa maniera:
codice:
public Musica(String percorso) throws UnsupportedAudioFileException, IOException, LineUnavailableException{
stream = AudioSystem.getAudioInputStream(new File(percorso));
AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
stream=AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED,stream);
}
DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat());
clip = (Clip) AudioSystem.getLine(info);
clip.open(stream); }