Обрезка mp3 файлов с помощью NAudio - PullRequest
6 голосов
/ 28 октября 2011

Можно ли обрезать файл MP3 с помощью NAudio?Я ищу способ взять стандартный mp3-файл, взять его часть и сделать его отдельным mp3.

Ответы [ 2 ]

10 голосов
/ 05 января 2013

Установить NAudio из Nuget:

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

Счастливые тропы.

2 голосов
/ 02 ноября 2011

Да, файл MP3 представляет собой последовательность кадров MP3, поэтому вы можете просто удалить кадры из начала или конца, чтобы обрезать файл. NAudio может анализировать MP3-кадры.

См. этот вопрос для более подробной информации.

...