Strona główna

Wstęp


Biblioteka ID3Lite, będąca docelowo częścią większego projektu, jest przeznaczona do modyfikacji tagów MP3 w wersji ID3v1/1.1 (pełna obsługa standardu) i ID3v2.3/2.4 implementująca najważniejsze funkcje. Biblioteka jest w postaci DLL przeznaczonej dla środowiska .NET.

Tagi zapisywane są w wersji ID3v1.1 i ID3v2.3 (kompatybilność z WMP/Windows). Obsługiwane są wszystkie cztery metody kodowania znaków (ISO-8859-1 - w rzeczywistości natywny dla Windows - ANSI, UTF-16, UTF-16BE, UTF-8) z tym, że zapisując tagi do wersji ID3v2.3 mamy do wyboru tylko pierwsze dwa. Standard ID3v1 nie wspiera polskich znaków, ale jest możliwość ich używania z zazanczeniem, że nie każdy program może poprawnie odczytywać te znaki. W przypadku ID3v2.x mamy już UTF-16, UTF-8.

Biblioteka jest podzielona na dwie klasy, które obsługują konkretne wersje tagów. Może nie jest to wygodne, ale w przyszłości być może zostanie napisana klasa w stylu ID3Manager, gdzie nie będzie potrzeby odwoływania się do poszczególnych wersji tagów za pomocą rożnych klas.

Przykładowy kod.


using ID3.ID3v1;
 
ID3v1 id3 = new ID3v1("song.mp3");
if (id3.HasTag())
{
  MessageBox.Show("Artist: " + id3.Artist);
  MessageBox.Show("Album: " + id3.Album);
  MessageBox.Show("Title: " + id3.Title);
}
else
{
  id3.Artist = "Artist";
  id3.Album = "Album";
  id3.Title = "Title";
 
  id3.SaveToFile("song.mp3");
}

using ID3.ID3v2;
 
ID3v2 id3 = new ID3v2("song.mp3");
if (id3.HasTag())
{
  MessageBox.Show("Artist: " + id3.Artist);
  // OR
  // MessageBox.Show("Artist: " + id3.Frames[ID3v2.FramesID.TPE1]);
 
  // Remove Artist (null or empty string)
  id3.Artist = null;
 
  // Retrieve all frames
  foreach (DictionaryEntry frame in id3.Frames)
  {
    MessageBox.Show(String.Format("{0} = {1}", frame.Key, frame.Value));
  }
}
else
{
  id3.Album = "Album";
  id3.Title = "Title";
  // The 'Copyright/Legal information' frame
  id3.Frames[ID3v2.FramesID.WCOP] = "http://blog.kacki.pl";
  // Content type
  id3.Frames[ID3v2.FramesID.TCON] = "(31)"; // Trance code (or just "Trance" string)
 
  id3.SaveToFile("song.mp3");
}

Ograniczenia


Obsługiwane są wszystkie ramki tekstowe z prefiksem T (oprócz TXXX) i W (oprócz WXXX), gdzie X oznacza dowolny znak).
Więcej informacji o ramkach uzyskamy na stronie http://www.id3.org/id3v2.4.0-frames.



Wszelkie opinie na temat biblioteki proszę zamieszczać na forum.