Witam
od dłuższego czasu mam problem z zapisem tagu mp3. Korzystam z biblioteki Java ID3 Tag Library: http://javamusictag.sourceforge.net/

Sprawa wygląda tak:

public class Test {
	
	static MP3File mp3file;
	static File plik = new File("audio.mp3");
	
	public static void main(String[] args) throws IOException, TagException
	{
	    mp3file = new MP3File(plik);
	    TagOptionSingleton.getInstance().setDefaultSaveMode(TagConstant.MP3_FILE_SAVE_FIRST);

	    AbstractID3v2 tag1 = mp3file.getID3v2Tag();

	    System.out.println(tag1.getAlbumTitle() + " " + tag1.getSongTitle() + " " + tag1.getSongComment() + " " + tag1.getSongGenre() + " " + tag1.getAuthorComposer() + " " + tag1.getLeadArtist());
	    
	    tag1.setSongComment("KOMENTARZZ");
	    System.out.println(tag1.getAlbumTitle() + " " + tag1.getSongTitle() + " " + tag1.getSongComment() + " " + tag1.getSongGenre() + " " + tag1.getAuthorComposer() + " " + tag1.getLeadArtist());
	    
	    tag1.setSongGenre("GATUNEKK");
	    System.out.println(tag1.getAlbumTitle() + " " + tag1.getSongTitle() + " " + tag1.getSongComment() + " " + tag1.getSongGenre() + " " + tag1.getAuthorComposer() + " " + tag1.getLeadArtist());

	    mp3file.setID3v2Tag(tag1);
	    mp3file.save();

	}

}
 

I dostaje z tego błąd w linii gdzie mam zapis: "mp3file.save();" :

     
  KOMENTARZZ   
  KOMENTARZZ GATUNEKK 
Exception in thread "main" java.lang.ClassCastException: org.farng.mp3.id3.ID3v2_3Frame cannot be cast to org.farng.mp3.id3.ID3v2_4Frame
	at org.farng.mp3.id3.ID3v2_4.write(Unknown Source)
	at org.farng.mp3.MP3File.save(Unknown Source)
	at org.farng.mp3.MP3File.save(Unknown Source)
	at Test.main(Test.java:47) 

Wcześniej kod był identyczny i działał, teraz pojawia się błąd - nie wiem w czym jest problem. Z tego co pisza wynika, że nie moge rzutować id3v2_3frame na id3v2_4frame, ale nie wiem jak to naprawić. Może wy wiecie? byłbym ogromnie wdzięczny.

Tak przy okazji, wiele bibliotek tj. ta którą używam - dotyczace edycji tagów mp3 jest już nie rozwijana od lat. Możecie mi podsunąć jakieś inne rozwiązanie w tej sprawie, np jakąs biblioteke napisaną w innym języku i sposób użycia jej w javie - strzelam, nie wiem czy to wgl możliwe :)

pozdrawiam!