RIFF(資源交換文件格式)是一種文件容器格式,用於將數據存儲為標記塊。它主要用於存儲視頻和音頻等多媒體。 Chunk中可能包含藝術家、創作日期、版權信息等信息。本文將指導開發者用C#從WAV音頻文件中提取元數據和RIFF INFO。

本文將簡要介紹以下主題:

用於管理元數據的 .NET API

在本文中,我將在 C# 示例中使用 GroupDocs.Metadata for .NET API 從 WAV 文件中提取元數據。除了音頻 WAV 文件外,API 還支持從 MP3 文件和視頻中添加、刪除、更新和提取元數據。此外,它還支持 Microsoft Office 和 Open Office 文件格式、電子書、圖像和許多其他文檔格式。

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。

PM> Install-Package GroupDocs.Metadata

在 C# 中提取 WAV 文件的元數據

讓我們從從 WAV 文件中提取元數據開始。按照以下步驟和代碼示例在 C# 中提取 WAV 文件的 WAV 包元數據屬性。

  • 加載 WAV 音頻文件。
  • 獲取元數據的 WavRootPackage
  • 從根包中提取 WavPackage
  • 現在您可以訪問 WAV 音頻的所有屬性。
// 在 C# 中提取 WAV 文件的元數據
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

在 C# 中提取 WAV 文件的 RIFF 信息

WAV 文件的 RIFF INFO 也可以通過與前面顯示的 WavPackage 屬性提取相同的方式提取。使用以下步驟,您可以在 .NET 應用程序中提取 WAV 文件格式的音頻文件的 RIFF 信息。

以下代碼示例在 C# 中提取 WAV 文件的 RIFF INFO 包元數據屬性。

// 在 C# 中提取 WAV 文件的 RIFF 信息
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

結論

總之,用C#很容易從WAV文件中取出元數據和RIFF INFO。在嘗試了上述示例之後,考慮開發您自己的元數據提取器 .NET 應用程序,例如 GroupDocs.Metadata App

GitHub 存儲庫 中提供了更多開源示例。下載源代碼並使用 入門 指南快速運行示例。如有任何困難,請訪問 文檔 或隨時在 論壇 上聯繫支持團隊。

也可以看看