Frage

Mit der Naudio -Bibliothek versuche ich, Audio mit einem WavemixerStream32 zu mischen, also verwende ich Wavechannel32, um die Streams im richtigen Format zu füttern. Ich habe eine Ausnahme mit der folgenden Nachricht:

Offset und Länge waren für das Array oder die Anzahl nicht Grenzen, oder die Anzahl ist größer als die Anzahl der Elemente vom Index bis zum Ende der Quellsammlung.

Das minimale Beispiel, das ich dazu bringen konnte, dass dieser Fehler auch WavemixerStream32 enthielt, wobei ich mich überhaupt zu dem Schluss brachte, dass das Problem darin bestand, wie ich Wavechannel32 verwende. Der Code lautet:

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 wird gut generiert. Audio32.WAV ist 58 Bytes und diese Linie hat die Ausnahme ausgelöst.

Was ist falsch?

War es hilfreich?

Lösung

Ja, das ist ein Fehler in Naudio. Danke, dass du es gemeldet hast. Ich habe ein Problem überprüft (war ein Problem mit Wavechannel32.getSourcebuffer). Sie müssen auch wissen, dass Sie Padwithzeroes auf Ihrem Wavechannel32 auf False setzen müssen, bevor Sie WaveFileWriter anrufen.

Andere Tipps

Ich habe ziemlich leicht einen Repro bekommen. Dies sieht aus wie ein grundlegender Fehler in Wavechannel32.Read (), es wird nicht mit mehreren Kanälen. WAV -Dateien ordnungsgemäß behandelt. Das Numbytes -Argument sieht aus wie die Größe der Datei, nicht mit dem Stream.

Lasst den Projektbesitzer wissen. Sie werden Ihr Problem jedoch einer ziemlich langen Liste hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top