Pregunta

¿Alguien sabe cómo transmitir los archivos Ogg sin necesidad de descargar totalmente a ellos primero sobre un zócalo (en el byte [] formato).

Estoy tratando de crear una música que fluye el uso y logró hacerlo con MP3, pero entiendo que hay problemas de licencias invovled después de cierto límite de ahí que quiero usar OGG (Vorbis). Me maanged encontrar este C # Vorbis Envoltura pero no hay documentación, y no puedo encontrar la manera de conseguir un byte [ ] transmitir a jugar.

He intentado lo siguiente

        var rawData = File.ReadAllBytes(@"SoundFile.ogg");
        var enc = new OggVorbisEncodedStream(rawData);
        var sp = new SoundPlayer(enc);
        sp.Play();

Sin embargo, una excepción es lanzada mostrando que la cabecera del archivo WAV es incorrecta. Entiendo SoundPlayer se utiliza sólo para la reproducción de archivos .wav? ¿Alguien sabe cómo se debe transmitir un archivo OGG?

¿Fue útil?

Solución

El envoltorio es muy delgada, llama directamente a las funciones nativas codec de OGG. Busque los documentos de ov_read para ver lo que hay detrás de OggVorbisEncodedStream.Read (). Raw PCM sería mi conjetura. La envoltura no realice ningún tipo de conversión del formato.

Sí, SoundPlayer no funcionará aquí, se requiere wav y no puede transmitir. Que necesita un jugador que puede tomar trozos de PCM como una entrada. No está seguro de lo que hace que, al NAudio proyecto es generalmente bueno para este tipo de cosas.

Otros consejos

string filePath = "License.lic";

using (var stream = new StreamReader(filePath))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top