Czy można przyciąć plik MP3 za pomocą NAudio? Szukam sposobu na wzięcie standardowego pliku mp3 i wzięcie jego części i uczynienie go oddzielnym mp3.Przycinanie plików MP3 przy użyciu NAudio
5
A
Odpowiedz
2
Tak, plik MP3 to sekwencja ramek MP3, więc można po prostu usunąć klatki z początku lub końca, aby przyciąć plik. NAudio może analizować klatki MP3.
Aby uzyskać więcej informacji, patrz this question.
9
Install NAudio z Nuget:
PM> Install-Package NAudio
Dodaj using NAudio.Wave;
i użyć tego kodu:
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.
To pytanie powinno zostać ponownie otwarte. To nie jest duplikat. Odpowiedziałem na oba pytania, a odpowiedzi są różne. –
@RonnieOverby Uzgodnione, ponownie otwarte :) –