Android 如何通过分析字节模式确定音频流类型

Android 如何通过分析字节模式确定音频流类型,android,audio,audio-streaming,Android,Audio,Audio Streaming,我刚刚开始为android构建一个iternet无线电接收器应用程序,它可以很好地用于.mp3和.pls扩展URL 我发现有很多流媒体站点只是通过IP地址和端口号给出的(//101.102.103.104:8080) 我的问题是,如果我从这样的URL接收到大量字节,我如何确定音频流的类型(是wav、mp3、pls还是其他),以便应用解码器 谢谢文件扩展名在HTTP中毫无意义。从原始数据中嗅探内容类型是困难的,并不总是可靠的,而且效率低下。正确的方法是查看内容类型响应标题。以下是流的典型标头: C

我刚刚开始为android构建一个iternet无线电接收器应用程序,它可以很好地用于.mp3和.pls扩展URL

我发现有很多流媒体站点只是通过IP地址和端口号给出的(//101.102.103.104:8080)

我的问题是,如果我从这样的URL接收到大量字节,我如何确定音频流的类型(是wav、mp3、pls还是其他),以便应用解码器


谢谢

文件扩展名在HTTP中毫无意义。从原始数据中嗅探内容类型是困难的,并不总是可靠的,而且效率低下。正确的方法是查看
内容类型
响应标题。以下是流的典型标头:

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
缓存控制:无缓存
内容类型:音频/mpeg
到期时间:1997年7月26日星期一格林尼治标准时间05:00:00
冰冷的br:256
冰冷的风格:鼓与贝斯丛林
冰名:鼓和低音-数字进口高级
ICE-notice1:
此流需要
icy-notice2:SHOUTcast分布式网络音频服务器/Linux v1.9.8
冰酒吧:0 冰冷的url:http://www.di.fm Pragma:没有缓存 服务器:Icecast 2.3.3-kh7
内容类型
audio/mpeg
表示MP3(或其他一些mpeg音频流,但我只看到MP3)。还有许多其他的,如
audio/aacp
audio/ogg