我有一个来自Icecast服务器的流正在下载,我可以通过执行以下操作获取头中的信息:
URLConnection cn = new URL(mediaUrl).openConnection();
cn.connect();
int pos=1;
String x;
String y;
同时(cn.getheaderfield(pos)!=空)
{
x=cn.getHeaderFieldkey(位置);
y=cn.getheaderfield(x);
log.e(“::::::”,“+x+”:“+y”);
POS ++;
}
当我执行此操作时,收到的所有头都显示为:
内容类型:音频/MPEG
冰br:64
冰音频信息:冰采样率=22050;冰比特率=64;冰通道=2
冰br:64
冰的描述:无线电台
冰冷的风格:古典、新时代、环境
冰名:无线电台示例
冰封私密:0
冰镇酒吧:1
结冰网址:
http://exampleradio.com
服务器:Icecast 2.3.2
缓存控制:无缓存
但是,如果我在mplayer中打开流,我会得到:
ICY Info: StreamTitle='artist - album - trackname'
并且每次改变歌曲时,新的曲目信息都以同样的方式发送到mplayer中。
在Android系统中,当我试图读取结冰信息时,我得到的所有返回都是空的。另外,当我从流中进行缓冲时,如何从头中检索新信息?因为即使我试图读取我已经知道的内容的标题,同时缓冲,例如:
Log.e(getClass().getName()," "+cn.getHeaderField("icy-br"));
我得到的只是空的。
我希望这是有意义的,我可以根据要求发布更多的代码。