Frågan#1
Här är en enkel klass för att läsa ID3 taggar, den klarar av både v1.1 och v2 av ID3 taggar. Koden är väll inte den snyggaste men allt fungerar och jag har inte hittat några minnes läckor.
Här neden följer ett enkelt test program som visar hur man använder klassen för att i detta fall läsa in tre mp3 låtar och läsa av id3 taggen,
#include <iostream>
#include "id3.hpp"
using namespace std;
int main(int argc, char *argv[])
{
CID3* id3;
id3=new CID3();
id3->LoadID3("track2.mp3");
cout << "Artits: " << id3->GetArtist() << endl;
cout << "Album: " << id3->GetAlbum() << endl;
cout << "Track Title: " << id3->GetTrackTitle() << endl;
cout << "Track Nr: " << id3->GetTrackNum() << endl;
cout << "Genre: " << id3->GetGenre() << endl;
cout << "Comments: " << id3->GetComments() << endl;
id3->LoadID3("track1.mp3");
cout << "Artits: " << id3->GetArtist() << endl;
cout << "Album: " << id3->GetAlbum() << endl;
cout << "Track Title: " << id3->GetTrackTitle() << endl;
cout << "Track Nr: " << id3->GetTrackNum() << endl;
cout << "Genre: " << id3->GetGenre() << endl;
cout << "Comments: " << id3->GetComments() << endl;
id3->LoadID3("track3.mp3");
cout << "Artits: " << id3->GetArtist() << endl;
cout << "Album: " << id3->GetAlbum() << endl;
cout << "Track Title: " << id3->GetTrackTitle() << endl;
cout << "Track Nr: " << id3->GetTrackNum() << endl;
cout << "Genre: " << id3->GetGenre() << endl;
cout << "Comments: " << id3->GetComments() << endl;
delete id3;
return(0);
}
Koden är testad och fungerar med VC++ 2003 på Windows och g++ 2.96 på Linux.
/Viktor