android - 如何通过解析字节模式来确定音频流类型

标签 android audio audio-streaming

我刚刚开始为Android构建Iternet radio 接收器应用程序,该应用程序对于.mp3和.pls扩展URL都可以正常工作。

我发现有许多流媒体站仅由IP地址和端口号提供(例如,// 101.102.103.104:8080)。

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

谢谢

最佳答案

文件名扩展名在HTTP中没有意义。从原始数据中嗅探内容类型是困难的,并非始终可靠且效率低下。正确的方法是查看Content-Type响应 header 。这是流的典型头:

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/aacpaudio/ogg

关于android - 如何通过解析字节模式来确定音频流类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374831/

相关文章:

android - CheckBox 更改值两次

javascript - 如何跟踪服务器中音频文件的播放次数?

python - 如何关闭由os.system()打开的python中的程序?

android - 蓝牙 a2dp 配置文件如何工作?

ios音频单元kAUVoiceIOProperty_DuckNonVoiceAudio错误-10879

c# - 为 HTML5 从设备中的线路创建实时音频流

android - 从 android play 下载时,我的应用程序不支持华为媒体垫 (hws7300w)

安卓 Espresso : Wait for Activity to finish/start

java - 如何在应用程序关闭后保存 arraylist<object>

android - 将 FFT 转换与 AudioRecord 结合使用