https://stackoverflow.com/questions/39328396/prepend-wav-header-in-naudio#= 马克·希思(Mark Heath)说: “您可以使用WaveFileWriter写入Stream。因此,在这种情况下,我将写入MemoryStream,然后处置WaveFileWritermust以正确完成WAV标头。但是,您将在内存中表示一个WAV文件。
一个警告是,您可能在处置WaveFileWriter时最终处置了MemoryStream,因此我在NAudio中有一个方便的类,称为IgnoreDisposeStream。您可以将其包装在其中,以阻止它在使用前被处置。” < / p>
如何在C#中包装内存流?
答案 0 :(得分:0)
public static void ConvertMemoryStreamToWavFile(ref MemoryStream ids, ref
MemoryStream ms)
{
ids.Seek(0, SeekOrigin.Begin);
using (var writer = new WaveFileWriter(new IgnoreDisposeStream(ms), new WaveFormat(22000, 16, 1)))
{
ids.CopyTo(writer);
writer.Flush();
writer.Close();
writer.Dispose();
}
}