您好我正在尝试在iOS中解析Shoutcast无线电的元数据。
在尝试了许多提交的解决方案之后,我最终得到了一段仍然给我错误的代码
响应字符串:找不到ICY 404资源
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);
关于问题的任何想法,感谢帮助
答案 0 :(得分:3)
并非所有SHOUTcast服务器都允许访问7.html
。还有另外两种方法可以获取这些数据。
SHOUTcast的XML数据通常可用,但需要服务器的密码。您可以使用/admin.cgi?mode=viewxml&page=4
来申请。
您还可以直接从流中读取元数据。这更麻烦,但完全可能,而且不太困难。有关详细信息,请参阅此答案:https://stackoverflow.com/a/4914538/362536
答案 1 :(得分:0)
我为那些不想/不想从流中读取元数据的人找到了解决方案。 这是我见过的最简单的解决方案。
http://www.fvalente.org/blog/2012/03/15/shoutcast-metadata-the-easy-way/
布拉德在上面的帖子中说道并非所有SHOUTcast服务器都允许访问7.html。
因此,最好检查您要获取元数据的服务器是否具有/7.html页面
答案 2 :(得分:0)
当前歌曲也会显示在/ played.html页面上,但它可以与/7.html一起在网络浏览器中使用。但是,当我在Windows机器上尝试使用fiddler2时,我发现ICY 404资源未找到错误