如何使用 Naudio 和 c# 修剪 mp3 帧的标题和边信息

Posted

技术标签:

【中文标题】如何使用 Naudio 和 c# 修剪 mp3 帧的标题和边信息【英文标题】:how to trim header and side information of mp3 frame using Naudio and c# 【发布时间】:2013-09-18 06:22:37 【问题描述】:

我的问题是获取 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();
  

它以位为单位返回所有帧数据,包括标题和边信息。 但我只需要每一帧的实际数据,没有标题和侧面信息。

谁能帮忙??

【问题讨论】:

【参考方案1】:

NAudio 可以为您找到 MP3 帧,但除了识别一些基本信息(例如采样率、通道模式等)之外,它不会对内容进行任何更深层次的解析。

如果您需要更深入地探索,则需要熟悉 MP3 帧的内部结构。特别是,看看你是否能拿到这些文件:

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

This article on codeproject 是一个很好的起点(点击底部的链接)。如果你想要 C# 代码包含对 MP3 帧格式的更深入理解,那么你可以探索NLayer的源代码

【讨论】:

以上是关于如何使用 Naudio 和 c# 修剪 mp3 帧的标题和边信息的主要内容,如果未能解决你的问题,请参考以下文章