Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

CSharp:Audio Editing

From Aino Wiki

Jump to: navigation, search

NAudio

E' una libreria open source scritta da Mark Health Progetto e caratteristiche github, è installabile mediante NuGet.
Macrocaratteristiche:

  • Playback
  • Elaborazione sui codec
  • Elaborazione dei files audio
  • Manipolazione audio
  • Generazione audio
  • Visualizzazione
  • MIDI
  • etc

Esempio

Da StackOverflow Trim audio Wav mp3:

public static class WavFileUtils
{
    public static void TrimWavFile(string inPath, string outPath, TimeSpan cutFromStart, TimeSpan cutFromEnd)
    {
        using (WaveFileReader reader = new WaveFileReader(inPath))
        {
            using (WaveFileWriter writer = new WaveFileWriter(outPath, reader.WaveFormat))
            {
                int bytesPerMillisecond = reader.WaveFormat.AverageBytesPerSecond / 1000;
 
                int startPos = (int)cutFromStart.TotalMilliseconds * bytesPerMillisecond;
                startPos = startPos - startPos % reader.WaveFormat.BlockAlign;
 
                int endBytes = (int)cutFromEnd.TotalMilliseconds * bytesPerMillisecond;
                endBytes = endBytes - endBytes % reader.WaveFormat.BlockAlign;
                int endPos = (int)reader.Length - endBytes; 
 
                TrimWavFile(reader, writer, startPos, endPos);
            }
        }
    }
 
    private static void TrimWavFile(WaveFileReader reader, WaveFileWriter writer, int startPos, int endPos)
    {
        reader.Position = startPos;
        byte[] buffer = new byte[1024];
        while (reader.Position < endPos)
        {
            int bytesRequired = (int)(endPos - reader.Position);
            if (bytesRequired > 0)
            {
                int bytesToRead = Math.Min(bytesRequired, buffer.Length);
                int bytesRead = reader.Read(buffer, 0, bytesToRead);
                if (bytesRead > 0)
                {
                    writer.WriteData(buffer, 0, bytesRead);
                }
            }
        }
    }
}

Mappa e Link


C# | Librerie di terze parti PlugIn


Visual Studio | MS SQL | Dizionario


Parole chiave:

Author