Я понимаю, что было бы проще использовать библиотеку, такую как mp3agic или jaudiotagger, но я хотел редактировать теги id3 вручную в учебных целях.
У меня есть код, настроенный для правильного получения тегов, однако я заметил, что для некоторых песен заголовок обрезается до 30 символов, однако, когда я открываю файл .mp3 в музыкальном проигрывателе, отображается полное название, которое длиннее 30 символов.
Это код, который я использую прямо сейчас для просмотра тегов:
File mp3File = new File(filePath);
byte[] mp3Meta = new byte[128];
try {
//convert file into array of bytes
fileReader = new FileInputStream(mp3File);
fileReader.skip((int)mp3File.length() - 128);
fileReader.read(mp3Meta);
String id3 = new String(mp3Meta);
String tag = id3.substring(0, 3);
if (tag.equals("TAG")) {
System.out.println("\nTitle: " + id3.substring(3, 32) + "\n" +
"Artist: " + id3.substring(33, 62) + "\n" +
"Album: " + id3.substring(63, 91) + "\n" +
"Year: " + id3.substring(93, 97) + "\n" +
"************************************************");
} else {
System.out.println("File has no ID3 tags..");
}
}catch(Exception e){
e.printStackTrace();
}
У меня есть идея, как я могу редактировать теги, но как я могу получить полное название (или любой тег), если оно длиннее 30 символов? Я читал, что есть способ добавить тег длиннее 30 символов в id3v2, но я не уверен, как получить доступ к кадрам id3v2.
Я считаю, что мне нужно определить, какую версию (id3v1 или id3v2) использует mp3, но я также не уверен, как это сделать программно.