我一直在尝试找到一种使用 C# 播放现场 ShoutCast 流的方法。我一直在为此研究互联网,到目前为止,我只找到了一些播放固定长度流的方法,但我想播放直播电台。
有谁知道这是怎么做到的吗?
我一直在尝试找到一种使用 C# 播放现场 ShoutCast 流的方法。我一直在为此研究互联网,到目前为止,我只找到了一些播放固定长度流的方法,但我想播放直播电台。
有谁知道这是怎么做到的吗?
SHOUTcast 流基本上是 HTTP 流,但带有损坏的状态行标头。而不是HTTP/1.1 200 OK
,你得到ICY 200 OK
。从那里,您可以从Content-Type
响应标头(例如audio/mpeg
)中检测格式和编解码器,并在数据进入时进行流式播放。
除此之外,还有元数据交织到流中。这是可选的,但可以通过在您的请求中添加以下标头来请求:
Icy-MetaData: 1
然后在响应标头中,您将看到Icy-MetaInt
告诉您每个元数据块之间有多少字节。有关如何处理该元数据的更多信息,请参阅此帖子: https ://stackoverflow.com/a/4914538/362536