public static void CreateAiffFile(string filename, WaveStream sourceProvider) { using (AiffFileWriter aiffFileWriter = new AiffFileWriter(filename, sourceProvider.WaveFormat)) { byte[] array = new byte[16384]; while (sourceProvider.Position < sourceProvider.Length) { int count = Math.Min((int)(sourceProvider.Length - sourceProvider.Position), array.Length); int num = sourceProvider.Read(array, 0, count); if (num == 0) { break; } aiffFileWriter.Write(array, 0, num); } } }
/// <summary> /// Creates an Aiff file by reading all the data from a WaveProvider /// BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, /// or the Aiff File will grow indefinitely. /// </summary> /// <param name="filename">The filename to use</param> /// <param name="sourceProvider">The source WaveProvider</param> public static void CreateAiffFile(string filename, WaveStream sourceProvider) { using (var writer = new AiffFileWriter(filename, sourceProvider.WaveFormat)) { byte[] buffer = new byte[16384]; while (sourceProvider.Position < sourceProvider.Length) { int count = Math.Min((int)(sourceProvider.Length - sourceProvider.Position), buffer.Length); int bytesRead = sourceProvider.Read(buffer, 0, count); if (bytesRead == 0) { // end of source provider break; } writer.Write(buffer, 0, bytesRead); } } }