4

您好,我正在尝试在 iOS 中解析 Shoutcast 广播的元数据。

在尝试了许多提交的解决方案之后,我最终得到了一段仍然给我错误的代码

响应字符串:ICY 404 Resource Not Found icy-notice1:
SHOUTcast 分布式网络音频服务器/Linux v1.9.8
icy-notice2:未找到请求的资源

我试图解析元数据的代码

NSURL *url = [NSURL URLWithString:@"http://relay.181.fm:8052/7.html"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];

   [request addValue:@"1" forHTTPHeaderField:@"icy-metadata"];
   [request addValue:@"Winamp 5/3" forHTTPHeaderField:@"User-Agent"];
   [request addValue:@"audio/mpeg" forHTTPHeaderField:@"Content-Type"];

[request setHTTPMethod:@"GET"];

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString* responseString = [[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding];

NSLog(@"Response String: %@", responseString);

关于问题的任何想法,感谢您的帮助

4

3 回答 3

4

并非所有 SHOUTcast 服务器都允许访问7.html. 还有另外两种获取该数​​据的方法。

SHOUTcast 的 XML 数据通常可用,但需要服务器的密码。您可以使用/admin.cgi?mode=viewxml&page=4.

您还可以直接从流中读取元数据。这比较麻烦,但完全有可能,而且难度不大。有关详细信息,请参阅此答案: https ://stackoverflow.com/a/4914538/362536

于 2012-11-26T20:36:35.560 回答
0

当前歌曲也显示在 /played.html 页面上,但它与 /7.html 一起在 Web 浏览器中工作。但是当我在 Windows 机器上尝试使用 fiddler2 时,我得到了 ICY 404 resource not found 错误

于 2014-03-24T11:19:03.243 回答
0

我为那些不能/不想从流中读取元数据的人找到了一个解决方案。这是我见过的最简单的解决方案。

http://www.fvalente.org/blog/2012/03/15/shoutcast-metadata-the-easy-way/

布拉德在上面的帖子中说

并非所有 SHOUTcast 服务器都允许访问 7.html。

所以最好检查你要获取元数据的服务器是否有/7.html页面

于 2012-11-27T08:59:45.923 回答