【问题标题】:WaveChannel32 gives me an exception: Offset and length were out of boundsWaveChannel32 给了我一个例外:偏移量和长度超出范围
【发布时间】:2010-12-31 23:28:27
【问题描述】:

通过 NAudio 库,我尝试使用 WaveMixerStream32 混合一些音频,因此我使用 WaveChannel32 以正确格式为其提供流。我收到以下消息的异常:

偏移量和长度超出范围 对于数组或计数大于 从索引到的元素数 源集合的结尾。

我可以做的最小示例也抛出该错误根本不包括 WaveMixerStream32 让我得出结论,问题在于我如何使用 WaveChannel32。代码是这样的:

var audio = new WaveFileReader(OriginalAudioFileName);
var audio32 = new WaveChannel32(new WaveFileReader(OriginalAudioFileName));
WaveFileWriter.CreateWaveFile(PublicAudioFileName + "audio.wav", audio);
WaveFileWriter.CreateWaveFile(PublicAudioFileName + "audio32.wav", audio32);

audio.wav 生成得很好。 audio32.wav 为 58 字节,该行引发了异常。

怎么了?

【问题讨论】:

    标签: c# .net naudio audio-processing


    【解决方案1】:

    我很容易得到一个复制品。这看起来像是 WaveChannel32.Read() 中的一个基本错误,它不能正确处理具有多个通道的 .wav 文件。 numBytes 参数看起来像文件的大小,而不是流。

    project owner know。不过,您会将您的问题添加到一个相当长的列表中。

    【讨论】:

    【解决方案2】:

    是的,这是 NAudio 中的一个错误。感谢您报告它。我已经检查了一个修复程序(WaveChannel32.GetSourceBuffer 有问题)。您还需要知道,在调用 WaveFileWriter.CreateWaveFile 之前,您必须在 WaveChannel32 上将 PadWithZeroes 设置为 false,否则您将创建一个永无止境的 WAV 文件,慢慢填满您的硬盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多