Stream Arquivo OGG
Pergunta
Alguém sabe como transmitir arquivos OGG sem baixá -los totalmente primeiro sobre um soquete (no formato byte []).
Estou tentando criar um aplicativo de streaming de música e consegui fazê -lo com MP3, mas entendo que há problemas de licenciamento invocados após um certo limite, portanto, por que eu quero usar o OGG (Vorbis). Eu fiz uma mata para encontrar Este invólucro C# vorbis Mas nenhuma documentação, e não consigo descobrir como obter um stream de byte [] para reproduzir.
Eu tentei o seguinte
var rawData = File.ReadAllBytes(@"SoundFile.ogg");
var enc = new OggVorbisEncodedStream(rawData);
var sp = new SoundPlayer(enc);
sp.Play();
Mas uma exceção é lançada mostrando que o cabeçalho do arquivo WAV está incorreto. Eu entendo que o SoundPlayer é usado para reproduzir apenas arquivos .wav? Alguém sabe como transmitir um arquivo OGG?
Solução
O invólucro é muito fino, chama diretamente as funções nativas do codec OGG. Procure os documentos do ov_read para ver o que você recebe de OggVorbisEncodedStream.read (). PCM cru seria meu palpite. O invólucro não tenta nenhum tipo de conversão de formato.
Sim, o SoundPlayer não funciona aqui, requer WAV e não pode transmitir. Você precisará de um jogador que possa tomar pedaços de PCM como entrada. Não tenho certeza do que faz isso, o Projeto Naudio Geralmente é bom para coisas como essa.
Outras dicas
string filePath = "License.lic";
using (var stream = new StreamReader(filePath))