libid3: Tags werden falsch eingelesen
-
Hallo,
Ich verwende diese Bibliothek: http://id3lib.sourceforge.net/um die Metatags aus mp3 Dateien auszulesen. Nun passiert folgendes:
Das Programm beginnt, die erste(n) Datei(en) werden koorekt bearbeitet. Dann jedoch wird den nächsten Dateien irgendwann (zu keinem sichtbar besonderen Zeitpunkt) die Tags der Datei zuvor zugeordnet und/oder nicht alle Dateien bearbeitet.
Das Ende vom Lied ist dass Datei x,y und z die Tags von Datei a zugewiesen werden.
Das Tagobjekt wird ordnungsgemäß geleert, es ist mir also ein Rätsel wie dies auftreten kann:
bool myTag::read(string mp3) { worktag.Link(mp3.c_str()); if (Ar_frame = worktag.Find(ID3FID_LEADARTIST)) {Ar_frame->Field ( ID3FN_TEXT ).Get ( artist, 1024 );} else{artist[0] = 'N'; artist[1]='A'; } if (Ti_frame = worktag.Find(ID3FID_TITLE)) {Ti_frame->Field ( ID3FN_TEXT ).Get ( title, 1024 );} else {title[0] = 'N'; title[1]='A';} if (Le_frame = worktag.Find(ID3FID_SONGLEN)) {Le_frame->Field ( ID3FN_TEXT ).Get ( length, 1024 );} else{length[0]='N'; length[1]='A';} if (Al_frame = worktag.Find(ID3FID_ALBUM)) {Al_frame->Field ( ID3FN_TEXT ).Get ( album, 1024 );} else{album[0]='N'; album[1]='A';} if (Ye_frame = worktag.Find(ID3FID_YEAR)) {Ye_frame->Field ( ID3FN_TEXT ).Get ( year, 1024 );} else{year[0] ='N'; year[1]='A';} worktag.Clear(); }