RIFF (формат файлу обміну ресурсами) — це формат файлу-контейнера для зберігання даних у вигляді фрагментів із тегами. Він в основному використовується для зберігання мультимедіа, наприклад відео та аудіо. Фрагмент може містити таку інформацію, як виконавець, дата створення, інформація про авторські права тощо. Ця стаття допоможе розробникам отримати метадані та 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 доступно багато інших прикладів із відкритим кодом. Завантажте вихідний код і швидко запустіть приклади за допомогою посібника початок роботи. У разі будь-яких труднощів відвідайте документацію або зв’яжіться з командою підтримки в будь-який час на форумі.

Дивись також