【问题标题】:Saving WMA in NAudio在 NAudio 中保存 WMA
【发布时间】: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 块以确保正确处理它。你可能两者都需要。
  • 我已经为此工作了一整天,需要的是“使用”块。非常感谢!请将其发布为答案,我会接受。

标签: c# wav naudio wma


【解决方案1】:

正如 cmets 中所讨论的,对写入器(实际上是读取器)使用 using 块,以便正确刷新和关闭流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2018-12-30
    • 2013-10-25
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多