Domanda

Qualcuno sa come lo streaming di file Ogg senza scaricarli completamente prima su un socket (in formato byte []).

Sto cercando di creare un'applicazione di streaming musicale e sono riuscito a farlo con MP3, ma ho capito non c'è problemi di licenza invovled dopo un certo limite, quindi, il motivo per cui voglio usare OGG (Vorbis). Ho maanged trovare questo C # Vorbis Wrapper, ma nessuna documentazione, e io non riesco a capire come ottenere un byte [ ] flusso di giocare.

Ho provato quanto segue

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

Ma un'eccezione si butta dimostrando che l'intestazione del file Wav non è corretto. Capisco SoundPlayer viene utilizzato solo per la riproduzione di file .wav? Qualcuno sa come per lo streaming di un file OGG?

È stato utile?

Soluzione

L'involucro è molto sottile, chiama direttamente le funzioni native codec di OGG. Cercare la documentazione di ov_read per vedere quello che si ottiene indietro da OggVorbisEncodedStream.Read (). PCM Raw sarebbe la mia supposizione. Il wrapper non tenta alcun tipo di conversione di formato.

Sì, SoundPlayer non funziona qui, richiede wav e non può trasmettere. Avrete bisogno di un giocatore che può prendere pezzi di PCM come input. Non sei sicuro di quello che fa che, il NAudio progetto di solito è buono per cose come questa.

Altri suggerimenti

string filePath = "License.lic";

using (var stream = new StreamReader(filePath))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top