我刚刚开始构建一个用于android的iternet无线电接收器应用程序,适用于.mp3和.pls扩展URL。
我发现有很多流媒体站只是由IP地址和端口号给出(例如//101.102.103.104:8080)。
我的问题是,如果我从这样的URL收到大量字节,我怎样才能确定音频流的类型(是wav还是mp3还是pls或其他东西)才能应用解码器?
由于
答案 0 :(得分:0)
文件名扩展在HTTP中毫无意义。从原始数据中嗅探内容类型很困难,并不总是可靠且低效。执行此操作的正确方法是查看Content-Type
响应标头。以下是流的典型标头:
Cache-Control:no-cache
Content-Type:audio/mpeg
Expires:Mon, 26 Jul 1997 05:00:00 GMT
icy-br:256
icy-genre:Drum and Bass Jungle
icy-name:Drum and Bass - Digitally Imported Premium
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-pub:0
icy-url:http://www.di.fm
Pragma:no-cache
Server:Icecast 2.3.3-kh7
内容类型audio/mpeg
表示MP3(或其他一些MPEG音频流,但我只看到MP3)。还有很多其他内容,例如audio/aacp
或audio/ogg
。