Có các tiêu chuẩn siêu dữ liệu khác nhau được sử dụng với các tệp MP3. Nhiều loại dữ liệu có thể được lưu trữ bằng các tiêu chuẩn khác nhau. Trong bài viết này, chúng tôi sẽ thảo luận về cách đọc các thẻ MP3 khác nhau bằng C#. Cụ thể, chúng ta sẽ học cách trích xuất các thẻ siêu dữ liệu ID3v1, ID3v2, Lời bài hát và APEv2 từ các tệp mp3 trong ứng dụng .NET.
Các chủ đề sau đây được đề cập dưới đây:
- .NET API để quản lý thẻ MP3
- Đọc thẻ MP3 ID3 - ID3v1 & ID3v2
- Nhận lời bài hát MP3 Tags
- Truy xuất các thẻ MP3 APEv2
.NET API cho Trình chỉnh sửa thẻ MP3
GroupDocs.Metadata cung cấp API .NET để tự động hóa việc quản lý siêu dữ liệu của [các định dạng tệp khác nhau](https://docs.groupdocs.com/metadata/net/supported-document -formats/) trong các ứng dụng .NET. API cho phép đọc, cập nhật, thêm, xóa và xóa siêu dữ liệu cho nhiều định dạng tệp. Chúng tôi sẽ sử dụng API này để xử lý các thẻ siêu dữ liệu của tệp MP3.
Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API trong ứng dụng .NET của bạn qua NuGet.
PM> Install-Package GroupDocs.Metadata
Đọc thẻ MP3 ID3 bằng C# - ID3v1 & ID3v2
Các bước sau đây cho biết cách đọc các thẻ MP3 ID3v1 bằng C#.
- Tải tệp MP3 bằng lớp Siêu dữ liệu.
- Truy xuất gói gốc bằng phương thức GetRootPackage().
- Từ thư mục gốc, bạn có thể truy xuất từng ID3v1.
Mã nguồn C# sau đọc một số thẻ MP3 ID3v1 của tệp MP3.
// Đọc các thẻ ID3V1 của tệp 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);
}
}
Tương tự, bạn có thể giải nén các thẻ ID3v2. Các bước sau đây cho biết cách truy xuất các thẻ MP3 ID3v2 bằng C#.
- Tải tệp MP3 bằng lớp Siêu dữ liệu.
- Tải gói gốc.
- Từ thư mục gốc, bạn có thể truy xuất tất cả các thẻ ID3v2 như Ban nhạc, Nghệ sĩ, Nhà soạn nhạc, v.v.
- Đối với ảnh đính kèm và chi tiết của chúng, hãy sử dụng thuộc tính AttachedPictures.
Ví dụ mã nguồn C# sau đây đọc một số thẻ MP3 ID3v2 và các chi tiết hình ảnh đính kèm của tệp MP3.
// Đọc các thẻ ID3V2 của tệp 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);
}
}
}
}
Đọc các thẻ lời bài hát MP3 trong C#
Các bước sau đây hướng dẫn đọc các thẻ Lời bài hát MP3 bằng C#.
- Tải tệp MP3 bằng lớp Siêu dữ liệu.
- Truy xuất gói gốc.
- Từ thư mục gốc, bạn có thể lấy các thẻ lời bài hát và các thuộc tính của nó như Lời bài hát, nghệ sĩ, v.v.
Đoạn mã C# sau truy xuất các thẻ lời bài hát MP3 và một số thuộc tính của nó từ tệp MP3.
// Đọc tập tin MP3 Thẻ lời bài hát
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);
// Ngoài ra, bạn có thể lặp qua danh sách đầy đủ các trường thẻ
foreach (var field in root.Lyrics3V2.ToList())
{
Console.WriteLine("{0} = {1}", field.ID, field.Data);
}
}
}
Đọc thẻ MP3 APEv2 trong C#
Các bước sau đây cho thấy cách chúng tôi có thể trích xuất các thẻ MP3 APEv2 bằng C#.
- Tải tệp MP3 bằng lớp Siêu dữ liệu.
- Truy xuất gói gốc bằng phương thức GetRootPackage().
- Từ thư mục gốc, bạn có thể truy xuất tất cả các thẻ APEv2 như Album, Thể loại, Bản quyền, Ngôn ngữ, v.v.
Các ví dụ mã C# sau đây đọc một số thuộc tính của thẻ MP3 APE của tệp MP3.
// Đọc thẻ APE của tệp 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);
}
}
Nhận giấy phép API miễn phí
Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.
Sự kết luận
Để kết thúc, chúng ta đã học cách trích xuất các thẻ siêu dữ liệu từ các tệp MP3 bằng C#. Chúng tôi đọc các thẻ ID3v1, ID3v2, Lời bài hát và APE cũng như các thuộc tính của chúng từ các tệp MP3. Bạn có thể tìm hiểu thêm về API từ tài liệu và liên hệ với chúng tôi nếu có thắc mắc qua diễn đàn .