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();
    
    }
    

Anmelden zum Antworten