Как я могу обнаружить (желательно Java) дубликаты файлов MP3 с разными тегами ID3? Файлы имеют одинаковую кодировку / формат. Он должен работать с обеими версиями ID3: ID3v1 и ID3v2.
Пока это мой код. Но он не работает с тегами Id3v1.
try {
String filepath = "c:\tmp";
Vector<String> mp3_files = new Vector<String>();
mp3_files.add(filepath + "test_with_id3.mp3");
mp3_files.add(filepath + "test_without_id3");
Iterator<String> i_mp3fp = mp3_files.iterator();
while (i_mp3fp.hasNext()){
String mp3_fp = i_mp3fp.next();
AudioInputStream din = null;
File file = new File(mp3_fp);
AudioInputStream in = AudioSystem.getAudioInputStream(file);
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(),
false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);
String md5 = org.apache.commons.codec.digest.DigestUtils.md5Hex( din );
System.out.println("Name: "+mp3_fp+" | Hash: "+md5);
din.close();
}
Когда я сделал это, я подумал, что мне нужно сравнить mp3 с разными кодировками. В любом случае.
Я думаю, что лучшим решением было бы просто прочитать файлы mp3 - игнорируя все теги id3 - сделать контрольную сумму и сравнить их. Есть ли библиотека для чтения и фильтрации mp3-файлов?
Спасибо, ребята, за помощь!