【发布时间】:2012-05-08 21:36:24
【问题描述】:
我正在尝试使用 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 文件。或者,有没有一种方法可以转换为 WMA 而无需 C# 中的 NAudio?
【问题讨论】:
-
这可能与缓冲和未正确处理有关。如果
WmaWriter允许,请在末尾添加Flush()和Close()。或者,在 writer 周围使用using块以确保正确处理它。你可能两者都需要。 -
我已经为此工作了一整天,需要的是“使用”块。非常感谢!请将其发布为答案,我会接受。