有没有人知道如何流式传输Ogg文件而不首先通过Socket完全下载它们(以byte []格式)。
我正在尝试创建一个音乐流媒体应用程序,我设法用MP3进行,但我知道在某些限制之后有许可问题,因此我想使用OGG(Vorbis)。我找到this C# Vorbis Wrapper但没有文档,我无法弄清楚如何获取byte []流。
我试过以下
var rawData = File.ReadAllBytes(@"SoundFile.ogg");
var enc = new OggVorbisEncodedStream(rawData);
var sp = new SoundPlayer(enc);
sp.Play();
但抛出异常表明Wav文件头不正确。据我所知,SoundPlayer仅用于播放.wav文件?有人知道如何流式传输OGG文件吗?
答案 0 :(得分:3)
包装器非常薄,它直接调用本机ogg编解码器功能。查找ov_read的文档以查看从OggVorbisEncodedStream.Read()返回的内容。原始PCM将是我的猜测。包装器不会尝试任何类型的格式转换。
是的,SoundPlayer在这里不起作用,它需要wav而且无法流式传输。您需要一个可以将PCM块作为输入的播放器。不确定是什么,NAudio project通常对这样的东西有好处。
答案 1 :(得分:1)
string filePath = "License.lic";
using (var stream = new StreamReader(filePath))