Hallo zusammen,
das Problem bei meinen Programm ist, dass sämtliche Änderungen, in diesem Fall nur die Änderung der Titelnummer, an meinen Mp3 Dateien nicht durchgeführt werden. Was muss ich tun, damit diese Änderungen gespeichert werden?
Zur Info:
Das Programm soll alle Mp3 Dateien innerhalb eines Ordners auswählen und nach dem Änderungsdatum entsprechend eine Titelnummer zuweisen.
[EDIT]Viel von den Teil, bei dem die Mp3 Dateien bearbeitet werden hab ich aus einem anderen Programm von mir kopiert, was funktioniert hat (auf Win7).
Jetzt hab ich Win8 (und anderer PC, denke (und hoffe) aber dass es mit dem OS nichts zu tun hat![/EDIT]
das Problem bei meinen Programm ist, dass sämtliche Änderungen, in diesem Fall nur die Änderung der Titelnummer, an meinen Mp3 Dateien nicht durchgeführt werden. Was muss ich tun, damit diese Änderungen gespeichert werden?
Zur Info:
Das Programm soll alle Mp3 Dateien innerhalb eines Ordners auswählen und nach dem Änderungsdatum entsprechend eine Titelnummer zuweisen.
Java:
import java.awt.EventQueue;
import java.io.File;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.jaudiotagger.audio.mp3.MP3File;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.id3.AbstractID3v2Tag;
public class TrackNumberAdder implements Comparator<Object> {
private Map<File, Long> mapTimes;
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
new TrackNumberAdder();
}
});
}
public TrackNumberAdder() {
JFileChooser filechooser = new JFileChooser();
filechooser.setCurrentDirectory(new File("D:/Dateien/Musik"));
filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
filechooser.setMultiSelectionEnabled(false);
filechooser.showDialog(null, "Auswählen");
//File directory = new File("D:/Dateien/Musik/TheSoundYouNeed Playlist");
File directory = filechooser.getSelectedFile();
if(directory == null) directory = filechooser.getCurrentDirectory();
File[] files = directory.listFiles();
mapTimes = new TreeMap<File, Long>();
for(int i=0; i<files.length; i++) {
mapTimes.put(files[i], files[i].lastModified());
}
Map<File, Long> mapTimesSorted = new TreeMap<File, Long>(this);
mapTimesSorted.putAll(mapTimes);
Object[] filesSorted = mapTimesSorted.keySet().toArray();
for(int i=0; i<filesSorted.length; i++) {
try {
//System.out.println((i+1) + "" + ((File) filesSorted[i]));
MP3File mp3 = new MP3File((File) filesSorted[i]);
AbstractID3v2Tag tag = mp3.getID3v2Tag();
tag.setField(FieldKey.TRACK, ""+(i+1));
mp3.commit();
mp3.save();
//System.out.println(tag.getFirst(FieldKey.TRACK));
Logger.getLogger("org.jaudiotagger").setLevel(Level.ALL);
//boolean succesfull = fileMp3.renameTo(new File(fileMp3.getParentFile(), name));
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
@Override
public int compare(Object o1, Object o2) {
return mapTimes.get(o1).compareTo(mapTimes.get(o2));
}
}
[EDIT]Viel von den Teil, bei dem die Mp3 Dateien bearbeitet werden hab ich aus einem anderen Programm von mir kopiert, was funktioniert hat (auf Win7).
Jetzt hab ich Win8 (und anderer PC, denke (und hoffe) aber dass es mit dem OS nichts zu tun hat![/EDIT]
Zuletzt bearbeitet: