【发布时间】:2011-02-13 10:00:53
【问题描述】:
我从 icecast 服务器下载了一个流,我可以通过执行以下操作来获取标题中的信息:
URLConnection cn = new URL(mediaUrl).openConnection();
cn.connect();
int pos=1;
String x;
String y;
while (cn.getHeaderField(pos) != null) { x=cn.getHeaderFieldKey(pos); y = cn.getHeaderField(x); Log.e(":::::",""+x+" : "+y); 正++; }
当我这样做时,我收到的所有标题都显示为:
内容类型:音频/mpeg 冰冷的 : 64 冰音频信息:冰采样率=22050;冰比特率=64;冰通道=2 冰冷的 : 64 冰冷的描述:RadioStation 冰冷类型:古典、新时代、环境 冰冷名称:RadioStation 示例 冰冷的私人:0 冰酒吧:1 冰冷的网址:http://exampleradio.com 服务器:Icecast 2.3.2 缓存控制:无缓存
但是,如果我在 mplayer 中打开我的流,我会得到:
ICY Info: StreamTitle='artist - album - trackname'
每次更改歌曲时,新的曲目信息都会以相同的方式在 mplayer 中发送。
在 android 中,当我尝试读取 icy-info 时,我返回的所有内容都是 null。另外,当我从流中缓冲时,我将如何从标头中检索新信息?因为即使我尝试在缓冲时读取我已经知道存在的内容的标题,例如:
Log.e(getClass().getName()," "+cn.getHeaderField("icy-br"));
我得到的都是空的。
我希望这是有道理的,我可以根据要求发布更多代码。
【问题讨论】:
标签: android audio-streaming shoutcast icecast