a = new WMPLib.WindowsMediaPlayer();
a.URL = "http://radiolink:8000/music";
a.controls.play();
它的作品和耳朵音乐。 现在我想读当前歌曲的标题。 我在这里发现我必须创建一个请求:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://radiolink:8000/music");
request.Headers.Clear();
request.Headers.Add("GET", " HTTP/1.0");
request.UserAgent = "WinampMPEG/5.09";
request.Headers.Add("Icy-MetaData", "1");
request.KeepAlive = true;
WebResponse fifo = request.GetResponse();
Console.WriteLine(fifo.Headers);
惠特代码控制台只写输出(content-type=audio-mpg
)。
可以帮助我,并以正确的方式正确地读取数据吗?
//解决了frist部分。 现在我回忆起那个:
icy-br:128,128 ice-audio-info: ice-samplerate = 44100; ice-bitrate = 128; ice-channels = 2 icy-description: radio fff icy-genre:各种冰名: RADIO icy-pub:0 icy-url:http://url.com icy-metaint: 16000 Cache-Control:no-cache Content-Type:audio / mpeg
如何阅读其他元数据?
答案 0 :(得分:1)
SHOUTcast / Icecast流的元数据不在标题中,而是在实际的流本身中。
你拥有的icy-metaint: 16000
标题是关键。每16,000个字节,您将获得一个元数据块。该块中的第一个字节表示元数据长度。将其值乘以16以获得以字节为单位的长度。一旦你这样做,你将最终得到这样的东西:
StreamTitle='Awesome Trance Mix - DI.fm';StreamUrl=''
它将在末尾用空字节填充,直到达到块的长度。
我在这里为PHP回答了同样的问题,但无论使用何种语言,概念都是一样的:Pulling Track Info From an Audio Stream Using PHP