使用 NAudio 修剪 mp3 文件

发布于 2024-12-12 19:19:17 字数 75 浏览 2 评论 0原文

是否可以使用 NAudio 修剪 MP3 文件?我正在寻找一种方法来获取标准 mp3 文件并获取其中的一部分并将其制作为单独的 mp3。

Is it possible to trim a MP3 file using NAudio? I am looking for a way to take a standard mp3 file and take a part of it and make it a seperate mp3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

御守 2024-12-19 19:19:17

从 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;
        }
    }
}

Happy Trails。

Install NAudio from Nuget:

PM> Install-Package NAudio

Add using NAudio.Wave; and use this code:

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;
        }
    }
}

Happy trails.

眼眸里的那抹悲凉 2024-12-19 19:19:17

是的,MP3 文件是 MP3 帧的序列,因此您只需从开头或结尾删除帧即可修剪文件。 NAudio 可以解析 MP3 帧。

有关更多详细信息,请参阅此问题

Yes, an MP3 file is a sequence of MP3 frames, so you can simply remove frames from the start or end to trim the file. NAudio can parse MP3 frames.

See this question for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文