W przypadku plików MP3 stosowane są różne standardy metadanych. Różne typy danych mogą być przechowywane przy użyciu różnych standardów. W tym artykule omówimy, jak czytać różne tagi MP3 za pomocą C#. W szczególności nauczymy się wyodrębniać tagi metadanych ID3v1, ID3v2, Lyrics i APEv2 z plików mp3 w aplikacji .NET.
Poniżej omówiono następujące tematy:
- .NET API do zarządzania tagami MP3
- Czytaj tagi MP3 ID3 - ID3v1 i ID3v2
- Pobierz tagi z tekstami MP3
- Odzyskaj tagi MP3 APEv2
.NET API dla edytora tagów MP3
GroupDocs.Metadata zapewnia interfejs API .NET do automatyzacji zarządzania metadanymi [różnych formatów plików](https://docs.groupdocs.com/metadata/net/supported-document -formaty/) w aplikacjach .NET. API pozwala odczytywać, aktualizować, dodawać, czyścić i usuwać metadane dla wielu formatów plików. Będziemy używać tego interfejsu API do obsługi znaczników metadanych plików MP3.
Możesz pobrać instalator bibliotek DLL lub MSI z sekcji pobierania lub zainstalować interfejs API w swojej aplikacji .NET za pośrednictwem NuGet.
PM> Install-Package GroupDocs.Metadata
Czytaj tagi MP3 ID3 za pomocą C# - ID3v1 i ID3v2
Poniższe kroki pokazują, jak odczytać znaczniki MP3 ID3v1 przy użyciu języka C#.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny przy użyciu metody GetRootPackage().
- Z katalogu głównego możesz pobrać każdy plik ID3v1.
Poniższy kod źródłowy C# odczytuje niektóre znaczniki MP3 ID3v1 pliku MP3.
// Czytaj tagi ID3V1 pliku MP3
using (Metadata metadata = new Metadata(Constants.MP3WithID3V1))
{
var root = metadata.GetRootPackage<MP3RootPackage>();
if (root.ID3V1 != null)
{
Console.WriteLine(root.ID3V1.Album);
Console.WriteLine(root.ID3V1.Artist);
Console.WriteLine(root.ID3V1.Title);
Console.WriteLine(root.ID3V1.Version);
Console.WriteLine(root.ID3V1.Comment);
}
}
Podobnie możesz wyodrębnić tagi ID3v2. Poniższe kroki pokazują, jak pobrać tagi MP3 ID3v2 przy użyciu języka C#.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny.
- Z katalogu głównego możesz pobrać wszystkie tagi ID3v2, takie jak Zespół, Artysta, Kompozytorzy itp.
- W przypadku załączonych obrazów i ich szczegółów użyj właściwości AttachedPictures.
Poniższy przykładowy kod źródłowy C# odczytuje niektóre tagi MP3 ID3v2 i dołączone szczegóły obrazu pliku MP3.
// Czytaj tagi ID3V2 pliku MP3
using (Metadata metadata = new Metadata(Constants.MP3WithID3V2))
{
var root = metadata.GetRootPackage<MP3RootPackage>();
if (root.ID3V2 != null)
{
Console.WriteLine(root.ID3V2.Album);
Console.WriteLine(root.ID3V2.Artist);
Console.WriteLine(root.ID3V2.Band);
Console.WriteLine(root.ID3V2.Title);
Console.WriteLine(root.ID3V2.Composers);
Console.WriteLine(root.ID3V2.Copyright);
Console.WriteLine(root.ID3V2.Publisher);
Console.WriteLine(root.ID3V2.OriginalAlbum);
Console.WriteLine(root.ID3V2.MusicalKey);
if (root.ID3V2.AttachedPictures != null)
{
foreach (var attachedPicture in root.ID3V2.AttachedPictures)
{
Console.WriteLine(attachedPicture.AttachedPictureType);
Console.WriteLine(attachedPicture.MimeType);
Console.WriteLine(attachedPicture.Description);
}
}
}
}
Czytaj tagi tekstów MP3 w C#
Poniższe kroki prowadzą do odczytywania tagów tekstów piosenek MP3 przy użyciu języka C#.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny.
- Z poziomu katalogu głównego możesz pobrać tagi tekstu i jego właściwości, takie jak tekst, wykonawca itp.
Poniższy fragment kodu w języku C# pobiera tagi tekstu MP3 i niektóre jego właściwości z pliku MP3.
// Czytaj tagi tekstu pliku MP3
using (Metadata metadata = new Metadata(Constants.MP3WithLyrics))
{
var root = metadata.GetRootPackage<MP3RootPackage>();
if (root.Lyrics3V2 != null)
{
Console.WriteLine(root.Lyrics3V2.Lyrics);
Console.WriteLine(root.Lyrics3V2.Album);
Console.WriteLine(root.Lyrics3V2.Artist);
Console.WriteLine(root.Lyrics3V2.Track);
// Alternatywnie możesz przeglądać pełną listę pól tagów
foreach (var field in root.Lyrics3V2.ToList())
{
Console.WriteLine("{0} = {1}", field.ID, field.Data);
}
}
}
Czytaj tagi MP3 APEv2 w C#
Poniższe kroki pokazują, jak możemy wyodrębnić tagi MP3 APEv2 za pomocą języka C#.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny za pomocą metody GetRootPackage().
- Z katalogu głównego możesz pobrać wszystkie tagi APEv2, takie jak album, gatunek, prawa autorskie, język itp.
Poniższe przykłady kodu w języku C# odczytują niektóre właściwości znaczników MP3 APE pliku MP3.
// Czytaj tagi APE plików MP3
using (Metadata metadata = new Metadata(Constants.MP3WithApe))
{
var root = metadata.GetRootPackage<MP3RootPackage>();
if (root.ApeV2 != null)
{
Console.WriteLine(root.ApeV2.Album);
Console.WriteLine(root.ApeV2.Title);
Console.WriteLine(root.ApeV2.Artist);
Console.WriteLine(root.ApeV2.Composer);
Console.WriteLine(root.ApeV2.Copyright);
Console.WriteLine(root.ApeV2.Genre);
Console.WriteLine(root.ApeV2.Language);
}
}
Uzyskaj bezpłatną licencję API
Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z interfejsu API bez ograniczeń ewaluacyjnych.
Wniosek
Podsumowując, nauczyliśmy się wyodrębniać znaczniki metadanych z plików MP3 za pomocą języka C#. Odczytujemy tagi ID3v1, ID3v2, Lyrics i APE oraz ich właściwości z plików MP3. Możesz dowiedzieć się więcej o interfejsie API z dokumentacji i skontaktować się z nami w sprawie pytań za pośrednictwem forum .