V C++ pouzivam kniznicu id3lib - http://id3lib.sourceforge.net/
Tuto kniznicu pouzivam na ziskavanie ID3 tagov. Pri ID3 tag verzii 1 nemam problem, avsak pri 2.4 problem mam. Pomocou programu EasyTag pridam tag a neviem ho precitat s touto kniznicou. Vrati mi prazdny String. Myslel som, ze problem je v EasyTag a tak som stiahol JAudioTagger a nakodil som si vlastny tagovac ID3 ver 2.4 tagov. Moj tagovac alebo teda JAudioTagger vedel perfektne citat tagy aj po EasyTagu a opacne. Len s kniznicou id3lib pod C++ mi to neslo. Tu je kod
ID3_Tag *myTag;
ID3_Frame *myFrame;
char *art=(char *)malloc(1000);
myTag=new ID3_Tag;
myTag->Link ("/home/test/db/TT.mp3", ID3TT_ID3V2);
if ( myFrame = myTag->Find ( ID3FID_LEADARTIST, ID3FN_TEXTENC, ID3TE_ASCII ) )
{
myFrame->Field ( ID3FN_TEXT ).Get ( art, 1000);
}
printf("Artist '%s'",art);
Neviete v com robim chybu? Preco mi to tato kniznica nevie precitat?
Standarde by som si to nakodil v Jave, ale je to serverova aplikacia a vykon je potrebny, preto sa trapim s C++.
Vdaka.
Dash
#include <cstring>
#include <id3.h>
#include <id3/field.h>
#include <id3/id3lib_frame.h>
#include <id3/misc_support.h>
#include <id3/tag.h>
using namespace std;
int main(int argc, char * argv[])
{
//const char moje[] = "mp3.mp3";
if(argc!=2)
return 0;
string ko;
ID3_Tag tag;
tag.Link(argv[1], ID3TT_ALL);
char *retazec = ID3_GetTitle(&tag);
ko.append(retazec);
delete retazec;
cout << ko << endl;
return 0;
}