使用 NAudio 修剪 mp3 文件
Posted
技术标签:
【中文标题】使用 NAudio 修剪 mp3 文件【英文标题】:Trimming mp3 files using NAudio 【发布时间】:2011-10-28 17:51:59 【问题描述】:是否可以使用 NAudio 修剪 MP3 文件?我正在寻找一种方法来获取标准的 mp3 文件并将其提取一部分并使其成为单独的 mp3。
【问题讨论】:
这个问题应该重新打开。它不是重复的。我已经回答了这两个问题,但答案不同。 @RonnieOverby 同意,重新打开 :) 【参考方案1】:从 Nuget 安装 NAudio:
PM> Install-Package NAudio
添加using NAudio.Wave;
并使用此代码:
void Main()
var mp3Path = @"C:\Users\Ronnie\Desktop\podcasts\hanselminutes_0350.mp3";
var outputPath = Path.ChangeExtension(mp3Path,".trimmed.mp3");
TrimMp3(mp3Path, outputPath, TimeSpan.FromMinutes(2), TimeSpan.FromMinutes(2.5));
void TrimMp3(string inputPath, string outputPath, TimeSpan? begin, TimeSpan? end)
if (begin.HasValue && end.HasValue && begin > end)
throw new ArgumentOutOfRangeException("end", "end should be greater than begin");
using (var reader = new Mp3FileReader(inputPath))
using (var writer = File.Create(outputPath))
Mp3Frame frame;
while ((frame = reader.ReadNextFrame()) != null)
if (reader.CurrentTime >= begin || !begin.HasValue)
if (reader.CurrentTime <= end || !end.HasValue)
writer.Write(frame.RawData,0,frame.RawData.Length);
else break;
快乐的足迹。
【讨论】:
使用这种方法,我留下了一个 mp3,它的长度在某些播放器中被错误地检测到。似乎有些玩家检测到旧的(预先修剪的)长度。有没有办法纠正这个问题?【参考方案2】:是的,MP3 文件是一系列 MP3 帧,因此您只需从开头或结尾删除帧即可修剪文件。 NAudio 可以解析 MP3 帧。
更多详情请见this question。
【讨论】:
以上是关于使用 NAudio 修剪 mp3 文件的主要内容,如果未能解决你的问题,请参考以下文章