【问题标题】:Playing a wav file after processing it with NAudio使用 NAudio 处理后播放 wav 文件
【发布时间】:2013-11-06 10:59:56
【问题描述】:

我已经使用 NAudio 将双数组 output[] 转换为 wav 文件。该文件在 VLC 播放器和 Windows Media Player 中播放正常,但是当我尝试在 Winamp 中打开它,或使用 wavread() 在 Matlab 中访问它时,我失败了..(在 Matlab 中我收到错误:“ Invalid Wave File。原因: WAV 文件中的块大小信息不正确。”,这很明显意味着标头有问题)。关于如何解决这个问题的任何想法?以下是将数组转换为 WAV 的代码:

float[] floatOutput = output.Select(s => (float)s).ToArray();
WaveFormat waveFormat = new WaveFormat(16000, 16, 1);
WaveFileWriter writer = new WaveFileWriter("C:\\track1.wav", waveFormat);
writer.WriteSamples(floatOutput, 0, floatOutput.Length);

【问题讨论】:

    标签: c# matlab audio naudio


    【解决方案1】:

    您必须处理您的WaveFileWriter,以便它可以正确修复 WAV 文件头。 using 语句是最好的方法:

    float[] floatOutput = output.Select(s => (float)s).ToArray();
    WaveFormat waveFormat = new WaveFormat(16000, 16, 1);
    using (WaveFileWriter writer = new WaveFileWriter("C:\\track1.wav", waveFormat))
    {
        writer.WriteSamples(floatOutput, 0, floatOutput.Length);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2018-08-17
      相关资源
      最近更新 更多