WEB开发网
开发学院手机开发Android 开发 Android 网络电台的一种实现方案 阅读

Android 网络电台的一种实现方案

 2010-03-19 16:11:00 来源:WEB开发网   
核心提示:随着电子产品的飞速发展,广播电台几乎已经远离了人们的娱乐生活,Android 网络电台的一种实现方案,但是近年来由于网络电台的兴起,广播电台又逐渐有了市场,shoutcast电台采用的是shoutcast协议,这种协议与http略有不同,手机上如果有一个网络电台软件,使用率应该是比较高的

随着电子产品的飞速发展,广播电台几乎已经远离了人们的娱乐生活,但是近年来由于网络电台的兴起,广播电台又逐渐有了市场,手机上如果有一个网络电台软件,使用率应该是比较高的。目前的主流智能手机平台中,iphone和 symbian都已经有了这类软件,android平台虽然推出的时间不是很长,但是也已经有这类软件了,最近我也正在Android上做这方面的工作,下面就把我的一些经验介绍一下。

网络电台种类

目前的网络电台网站一般是基于以下三种协议的:

mms、rtsp、http

其中mms是微软公司提出的网络流媒体协议,通常采用wma格式的文件,Android现在还不支持这种协议,也不支持wma格式,原因比较明显,竞争对手嘛。

rtsp是RealNetworks公司提出的,Android是支持这种协议的,但是这种协议通常采用rm格式的文件,Android是不支持的。

http协议Android是肯定支持的,而且这种协议一般采用mp3的文件格式,Android也支持。

综上,我们要在Android上开发网络电台软件,那么只能选择http协议 mp3格式的网络电台网站,这样的网站主要包括shoutcast和icecast两大类。这两类有微小差别,基本上是相同的,下面主要以 shoutcast为主进行说明。

MediaPlayer

熟悉Android的人可能都知道有MediaPlayer这样一个类,用于媒体播放,而且这个类是支持流媒体播放的,这个类支持的协议包括rtsp、http等,但是我们还不能直接用这个类来播放网络电台,主要有两个原因:

1.上面提到的shoutcast电台并不是直接采用http协议,MediaPlayer无法正常连接到shoutcast电台

2.MediaPlayer 能够正常解析的URL必须是http://............/*.*的形式,也就是说url中必须包括文件名,shoutcast电台的url不符合这样的形式.

因此需要做一些转换的工作。

shoutcast协议

上面已经提到,shoutcast网络电台是采用http协议的,其实这种说法并不准确,shoutcast电台采用的是shoutcast协议,这种协议与http略有不同,客户端与服务器间通讯过程如下:

向服务器发送GET请求,内容如下:

HTTP/1.0

User-Agent:AndroidInternetRadio

Accept:audio/mpeg

服务器端返回如下:

ICY 200 OK (signifying that the server was successful)

1 2  下一页

Tags:Android 网络电台 实现

编辑录入:coldstar [复制链接] [打 印]
赞助商链接