在NAudio中保存WMA

时间:2012-05-08 21:36:25

标签: c# wav naudio wma

我正在尝试使用NAudio将WAV文件转换为WMA文件。我设法让它部分工作,但声音效果的最后几秒被切断了。

WaveFileReader wr = new WaveFileReader(@"C:\mywav.wav");
WmaWriter ww = new WmaWriter(new FileStream(@"C:\mywma.wma",FileMode.Create),new WaveFormat(44100,2),profile);

byte[] buff = null;

int read = 0;

buff=new byte[wr.Length];
read = wr.Read(buff,0,buff.Length);
while ((read > 0))
{
  ww.Write(buff,0,read);
  read = wr.Read(buff,0,buff.Length);
}

这只是部分写入WMA文件,而不是整个WAV文件。或者有没有办法在C#中转换为WMA而不需要NAudio?

1 个答案:

答案 0 :(得分:2)

正如评论中所讨论的那样,在编写器(实际上是读者)中使用using块,以便正确刷新和关闭流。