Существуют различные стандарты метаданных, которые используются с файлами MP3. Различные типы данных могут храниться с использованием разных стандартов. В этой статье мы обсудим, как читать различные теги MP3 с помощью C#. В частности, мы научимся извлекать теги метаданных ID3v1, ID3v2, Lyrics и APEv2 из файлов mp3 в приложении .NET.
Ниже рассматриваются следующие темы:
- API .NET для управления тегами MP3
- Чтение тегов MP3 ID3 - ID3v1 и ID3v2
- Получить теги текстов песен в формате MP3
- Получить теги MP3 APEv2
.NET API для редактора тегов MP3
GroupDocs.Metadata предоставляет .NET API для автоматизации управления метаданными различных форматов файлов в приложениях .NET. API позволяет читать, обновлять, добавлять, очищать и удалять метаданные для многих форматов файлов. Мы будем использовать этот API для работы с тегами метаданных файлов MP3.
Вы можете скачать библиотеки DLL или установщик MSI из раздел загрузок или установить API в своем приложении .NET через NuGet.
PM> Install-Package GroupDocs.Metadata
Чтение тегов MP3 ID3 с помощью C# — ID3v1 и ID3v2
Следующие шаги показывают, как читать теги MP3 ID3v1 с помощью C#.
- Загрузите файл MP3, используя класс Metadata.
- Получите корневой пакет, используя метод GetRootPackage().
- Из корня вы можете получить каждый файл ID3v1.
Следующий исходный код C# считывает некоторые теги MP3 ID3v1 файла MP3.
// Чтение тегов ID3V1 файла 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);
}
}
Точно так же вы можете извлечь теги ID3v2. Следующие шаги показывают, как получить теги MP3 ID3v2 с помощью C#.
- Загрузите файл MP3, используя класс Metadata.
- Получите корневой пакет.
- Из корня вы можете получить все теги ID3v2, такие как Band, Artist, Composers и т. д.
- Для прикрепленных изображений и их деталей используйте свойства AttachedPictures.
В следующем примере исходного кода C# считываются некоторые теги MP3 ID3v2 и сведения о вложенных изображениях файла MP3.
// Чтение тегов ID3V2 файла 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);
}
}
}
}
Чтение текстовых тегов MP3 на C#
Следующие шаги помогут прочитать теги MP3 Lyrics с помощью C#.
- Загрузите файл MP3, используя класс Metadata.
- Получите корневой пакет.
- Из корня вы можете получить теги текстов песен и их свойства, такие как тексты песен, исполнители и т. д.
Следующий фрагмент кода C# извлекает теги текстов песен MP3 и некоторые их свойства из файла MP3.
// Читать MP3 файл Lyrics tags
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);
// Кроме того, вы можете просмотреть полный список полей тегов.
foreach (var field in root.Lyrics3V2.ToList())
{
Console.WriteLine("{0} = {1}", field.ID, field.Data);
}
}
}
Чтение тегов MP3 APEv2 на C#
Следующие шаги показывают, как мы можем извлечь теги MP3 APEv2 с помощью C#.
- Загрузите файл MP3, используя класс Metadata.
- Получить корневой пакет с помощью метода GetRootPackage().
- Из корня вы можете получить все теги APEv2, такие как «Альбом», «Жанр», «Авторские права», «Язык» и т. д.
В следующих примерах кода C# читаются некоторые свойства тегов MP3 APE файла MP3.
// Чтение тегов APE файла 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);
}
}
Получите бесплатную лицензию API
Вы можете получить бесплатную временную лицензию, чтобы использовать API без ограничений пробной версии.
Вывод
В заключение мы научились извлекать теги метаданных из файлов MP3 с помощью C#. Мы считываем теги ID3v1, ID3v2, Lyrics и APE и их свойства из файлов MP3. Вы можете узнать больше об API из документации и связаться с нами по вопросам через форум .