Stream Ogg-Datei
Frage
Wer weiß, wie Ogg-Dateien zu streamen, ohne sie vollständig sie zuerst über einen Socket (in byte [] Format) heruntergeladen werden.
Ich versuche, eine Musik-Streaming-Anwendung zu erstellen, und ich schaffte es mit MP3 zu tun, aber ich verstehe, gibt es Probleme, die nach bestimmten Grenze invovled Lizenzierung also warum ich will OGG (Vorbis) verwenden. Ich maanged finden diese C # Vorbis Wrapper aber keine Dokumentation, und ich kann nicht herausfinden, wie ein Byte bekommen [ ] spielen streamen.
Ich habe versucht, die folgenden
var rawData = File.ReadAllBytes(@"SoundFile.ogg");
var enc = new OggVorbisEncodedStream(rawData);
var sp = new SoundPlayer(enc);
sp.Play();
Aber eine Ausnahme ausgelöst wird zeigen, dass die Wav-Datei-Header nicht korrekt ist. Ich verstehe Soundplayer nur verwendet wird, für .wav-Dateien zu spielen? Weiß jemand, wie man eine OGG-Datei streamen?
Lösung
Der Wrapper ist ein sehr dünner ein, ruft sie direkt die nativen ogg-Codec-Funktionen. Geben Sie für die Dokumentation von ov_read, um zu sehen, was man von OggVorbisEncodedStream.Read zurück (). Raw PCM würde meine Vermutung. Der Wrapper nicht versucht, jede Art von Formatumwandlung.
Ja, Soundplayer wird hier nicht funktionieren, bedarf es wav und nicht streamen. Sie werden einen Spieler müssen die Stücke von PCM als eine Eingabe erfolgen kann. Nicht sicher, was das tut, der NAudio Projekt für Sachen wie diese in der Regel gut.
Andere Tipps
string filePath = "License.lic";
using (var stream = new StreamReader(filePath))