使用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个字节,该行抛出异常。
有什么问题?
答案 0 :(得分:2)
我很容易得到一个复制品。这看起来像是WaveChannel32.Read()中的一个基本错误,它不能正确处理具有多个通道的.wav文件。 numBytes参数看起来像文件的大小,而不是流。
让project owner know。您可以将问题添加到相当长的列表中。
答案 1 :(得分:2)
是的,这是NAudio中的一个错误。谢谢你报道。我已经检查过修复(WaveChannel32.GetSourceBuffer有问题)。您还需要知道在调用WaveFileWriter.CreateWaveFile之前必须在WaveChannel32上将PadWithZeroes设置为false,否则您将创建一个永无止境的WAV文件,慢慢填满您的硬盘。