Formato de byte de sonido XML

Tengo un archivo .wav y escribo este formulario de bytes en XML. Quiero reproducir esta canción en mi formulario, pero no estoy seguro de estar en lo correcto y no funciona. Str es el formato de bytes de mi archivo.

byte[] soundBytes = Convert.FromBase64String(str);
MemoryStream ms = new MemoryStream(soundBytes, 0, soundBytes.Length);
ms.Write(soundBytes, 0, soundBytes.Length);
SoundPlayer ses = new SoundPlayer(ms);
ses.Play();

preguntado el 31 de julio de 12 a las 12:07

1 Respuestas

Creo que el problema es que estás inicializando tu MemoryStream con un búfer, y luego escribir ese mismo búfer en la secuencia. Por lo tanto, la transmisión comienza con un búfer de datos determinado y luego lo sobrescribe con un búfer idéntico, pero en el proceso también cambia la posición actual dentro de la transmisión hasta el final.

byte[] soundBytes = Convert.FromBase64String(str);
MemoryStream ms = new MemoryStream(soundBytes, 0, soundBytes.Length);
// ms.Position is 0, the beginning of the stream
ms.Write(soundBytes, 0, soundBytes.Length);
// ms.Position is soundBytes.Length, the end of the stream
SoundPlayer ses = new SoundPlayer(ms);
// ses tries to play from a stream with no more bytes to consume
ses.Play();

Eliminar la llamada a ms.Write() y mira si funciona

Respondido 01 ago 12, 03:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.