如何使用 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 帧的标题和边信息的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# 中的 NAudio 将 M4A 音频文件转换为 MP3 的问题/错误