WaveChannel32 me da una excepción: el desplazamiento y la longitud estaban fuera de los límites

StackOverflow https://stackoverflow.com/questions/1994843

Pregunta

Con la biblioteca Naudio, estoy tratando de mezclar un poco de audio usando un WaveMixerStream32, así que estoy usando WaveChannel32 para alimentarlo con las transmisiones en el formato adecuado. Tengo una excepción con el siguiente mensaje:

El desplazamiento y la longitud estaban fuera de los límites para la matriz o el recuento es mayor que el número de elementos desde el índice hasta el final de la colección de fuente.

El ejemplo mínimo que podría hacer que también lanzara ese error no incluyó WaveMixerStream32 en absoluto con la conclusión de que el problema estaba en cómo estoy usando WaveChannel32. El código es este:

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 se genera bien. audio32.wav es 58 bytes y esa línea lanzó la excepción.

¿Qué está mal?

¿Fue útil?

Solución

Sí, este es un error en Naudio. Gracias por informarlo. He registrado una solución (fue un problema con WaveChannel32.getSourceBuffer). También debe saber que debe configurar Padwithzeroes en falso en su WaveChannel32 antes de llamar a WaveFileWriter.CreatewaveFile o creará un archivo WAV interminable, llenando lentamente su disco duro.

Otros consejos

Tengo una repro con bastante facilidad. Esto parece un error básico en WaveChannel32.read (), no maneja los archivos .WAV con múltiples canales correctamente. El argumento NumBytes se parece al tamaño del archivo, no al flujo.

Deja el El propietario del proyecto sabe. Sin embargo, agregará su problema a una lista bastante larga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top