С библиотекой 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 байт, и эта строка вызвала исключение.
Что случилось?