RIFF (формат файлу обміну ресурсами) — це формат файлу-контейнера для зберігання даних у вигляді фрагментів із тегами. Він в основному використовується для зберігання мультимедіа, наприклад відео та аудіо. Фрагмент може містити таку інформацію, як виконавець, дата створення, інформація про авторські права тощо. Ця стаття допоможе розробникам отримати метадані та RIFF INFO з аудіофайлів WAV у C#.
У статті будуть коротко розглянуті такі теми:
- .NET API для керування метаданими
- Видобуток метаданих WAV-файлів у C#
- Видобуток RIFF INFO файлів WAV у C#
.NET API для керування метаданими
У цій статті я буду використовувати API GroupDocs.Metadata for .NET у прикладах C# для вилучення метаданих із файлів WAV. Окрім аудіофайлів WAV, API підтримує додавання, видалення, оновлення та вилучення метаданих із файлів MP3 і відео. Крім того, він підтримує формати файлів Microsoft Office і Open Office, електронні книги, зображення та багато інших форматів документів.
Ви можете завантажити DLL або інсталятор MSI із розділу завантажень або встановити API у своїй програмі .NET за допомогою NuGet.
PM> Install-Package GroupDocs.Metadata
Видобуток метаданих WAV-файлів у C#
Почнемо з вилучення метаданих із файлів WAV. Дотримуйтесь кроків і наведеного нижче прикладу коду для видобування властивостей метаданих пакета WAV файлів WAV у C#.
- Завантажте аудіофайл WAV.
- Отримайте WavRootPackage метаданих.
- Витягніть WavPackage із кореневого пакета.
- Тепер ви можете отримати доступ до всіх властивостей аудіо WAV.
// Видобуток метаданих файлів WAV у C#
using (Metadata metadata = new Metadata("audio.wav"))
{
var root = metadata.GetRootPackage<WavRootPackage>();
Console.WriteLine("Bits per Sample: " + root.WavPackage.BitsPerSample); // Bits per Sample
Console.WriteLine("Block Align: " + root.WavPackage.BlockAlign); // Block Align
Console.WriteLine("Byte Rate: " + root.WavPackage.ByteRate); // Byte Rate
Console.WriteLine("Number of Channels: " + root.WavPackage.NumberOfChannels); // Number of Channels
Console.WriteLine("Audio Format: " + root.WavPackage.AudioFormat); // Audio Format
Console.WriteLine("Sample Rate: " + root.WavPackage.SampleRate); // Sample Rate
}
Ось результат наведеного вище коду:
Bits per Sample: 16
Block Align: 4
Byte Rate: 176400
Number of Channels: 2
Audio Format: 1
Sample Rate: 44100
Видобуток RIFF INFO файлів WAV у C#
RIFF INFO файлів WAV також можна видобути у спосіб, що не відрізняється від вилучення властивостей WavPackage, показаного раніше. Виконуючи наступні кроки, ви можете видобути RIFF INFO аудіофайлу у форматі WAV у своїй програмі .NET.
- Завантажте аудіофайл WAV.
- Отримайте WavRootPackage метаданих.
- Витягніть RiffInfoPackage із кореневого пакета.
- Тепер перейдіть до властивостей аудіо WAV.
У наведеному нижче прикладі коду витягуються властивості метаданих пакета RIFF INFO файлу WAV у C#.
// Видобуток RIFF INFO файлів WAV у C#
using (Metadata metadata = new Metadata("audio.wav"))
{
var root = metadata.GetRootPackage<WavRootPackage>();
Console.WriteLine("Artist: " + root.RiffInfoPackage.Artist); // Artist
Console.WriteLine("Comment: " + root.RiffInfoPackage.Comment); // Comment
Console.WriteLine("Copyright: " + root.RiffInfoPackage.Copyright); // Copyright
Console.WriteLine("CreationDate: " + root.RiffInfoPackage.CreationDate); // Creation Date
Console.WriteLine("Software: " + root.RiffInfoPackage.Software); // Software
Console.WriteLine("Engineer: " + root.RiffInfoPackage.Engineer); // Engineer
Console.WriteLine("Genre: " + root.RiffInfoPackage.Genre); // Genre
}
Нижче наведено результат наведеного вище коду:
Artist: GroupDocs
Comment: Sample WAV File
Copyright:
CreationDate: 2020-12-03
Software: Sound Forge
Engineer: SGEFFNER
Genre: Mystery
Висновок
Коротше кажучи, дуже легко вилучити метадані та RIFF INFO з WAV-файлів у C#. Спробувавши наведені вище приклади, подумайте про те, щоб розробити власну програму .NET екстрактора метаданих, наприклад GroupDocs.Metadata App.
У GitHub Repository доступно багато інших прикладів із відкритим кодом. Завантажте вихідний код і швидко запустіть приклади за допомогою посібника початок роботи. У разі будь-яких труднощів відвідайте документацію або зв’яжіться з командою підтримки в будь-який час на форумі.