public static byte[] WaveSamplesToWav(WaveSamples samples) { using (var wavStream = new MemoryStream()) using (var wavWriter = new WaveFileWriter(wavStream, samples.WaveFormat)) { wavWriter.WriteSamples(samples.Samples, 0, samples.Samples.Length); wavWriter.Flush(); return(wavStream.ToArray()); } }
public static WaveSamples WavToWaveSamples(byte[] wavBytes) { var waveSamples = new WaveSamples(); using (var inWavStream = new MemoryStream(wavBytes)) using (var wavReader = new WaveFileReader(inWavStream)) { waveSamples.WaveFormat = wavReader.WaveFormat; var sampleProvider = wavReader.ToSampleProvider(); var samples = new float[inWavStream.Length]; var samplesCount = sampleProvider.Read(samples, 0, samples.Length); Array.Resize(ref samples, samplesCount); waveSamples.Samples = samples; } return(waveSamples); }