コード例 #1
0
ファイル: AudioUtils.cs プロジェクト: akorda/MusicUtils
 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());
         }
 }
コード例 #2
0
ファイル: AudioUtils.cs プロジェクト: akorda/MusicUtils
        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);
        }