2010-03-31 67 views
0

有谁知道如何流Ogg文件没有完全通过一个套接字(以字节[]格式)下载它们。流Ogg文件

我想创建一个音乐流媒体应用程序,我设法做到了MP3的,但我知道有一些限制后启用授权问题,因此为什么我想使用OGG(Vorbis)。我寻找this C# Vorbis Wrapper但没有文档,我不知道如何获得一个字节[]流播放。

我曾尝试以下

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

但一个例外得到投掷显示,WAV文件头不正确。我知道SoundPlayer仅用于播放.wav文件吗?有人知道如何流式传输OGG文件吗?

+0

可能与格式有关:http://linuxhaters.blogspot.com/2010/03/tale-of-ogg.html – Will 2010-03-31 16:08:23

回答

3

包装是一个非常薄,它直接调用本地ogg编解码器功能。查看ov_read的文档以查看从OggVorbisEncodedStream.Read()返回的内容。原始PCM将是我的猜测。包装不会尝试任何类型的格式转换。

是的,SoundPlayer不会在这里工作,它需要wav并且不能流式传输。您需要一个能够将大块PCM作为输入的播放器。不知道那是什么,NAudio project通常适合这样的东西。

1
string filePath = "License.lic"; 

using (var stream = new StreamReader(filePath))