簡體   English   中英

如何使用Naudio和c#修剪mp3幀的標題和邊信息

[英]how to trim header and side information of mp3 frame using Naudio and c#

我的問題是獲取mp3幀的實際數據。 為此,我使用了NAudio並獲取了RawData,但我認為在RawData屬性中,它返回幀的所有字節,包括標題和輔助信息。

代碼如下:

private void button1_Click(object sender, EventArgs e)
{
    Mp3FileReader reader = new Mp3FileReader("file.mp3");
    Mp3Frame mp3Frame = reader.ReadNextFrame();
    byte [] FrameByteArray =  mp3Frame.RawData;

    BitArray bits = new BitArray(FrameByteArray);
    Console.Write(mp3Frame.RawData.Length);
    foreach (bool b in bits)
    {
        if (b == true)
        {
            Console.Write(" 1");
        }
        else
        {
            Console.Write(" 0");
       }

    }
    reader.Close();
  }

它以位為單位返回所有幀數據,包括標題和邊信息。 但是我只需要每幀的實際數據,而沒有標題和邊信息。

有人可以幫忙嗎?

NAudio可以為您找到MP3幀,但是除了標識一些基本信息(例如采樣率,通道模式等)之外,它不會對內容進行任何更深層次的解析。

如果您需要進行更深入的探索,則需要熟悉MP3框架的內部結構。 特別是,請查看您是否可以獲取以下文檔:

  • MPEG 1規范(ISO / IEC 11172-3)。
  • MPEG 2規范(ISO / IEC 13818-3)。

這篇關於codeproject的文章將是一個很好的起點(遵循底部的鏈接)。 如果您希望C#代碼對MP3幀格式有更深入的了解,則可以探索NLayer的源代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM