豆瓣FM、百度随身听等在线播放器播放的MP3格式音乐怎样实现边播放边下载的

根据维基百科Streaming media(流媒体)条目:http://en.wikipedia.org/wiki/Streaming_media3 Codec, bitstream, transport, controlThe audio stream is compressed using an audio codec such as MP3, Vorbis or AAC.
■网友
是不是流媒体和 mp3 没有关系,任何编码格式都可以是流媒体(即使你说的边下载边播放),除非你的编码格式怪异到第一帧解码要用到最后一帧的数据……没有那样变态的编码格式。 至于如何方式爬虫抓取,豆瓣电台和豆瓣音乐人使用的文件地址是可变的,大约是这样的一个格式:h t t p: / / imgx . douban . com/mp3/可变的字符串/文件名.mp3上面的地址中,每过一段时间,中间那个“可变字符串”部分就变化,也就是说你抓下来的地址,过一段时间就失效了。
■网友
非专业人士的答案1.怎么确定网页中音乐文件的后缀是不是MP3(有的文件虽然后缀名为MP3但不是MP3格式的),用chrome浏览器打开网页→审查元素→NetWork→ctrl+F,搜索关键字“MP3”,如果搜索不到刷新网页再次搜索。2.边播放边下载是如何实现的?上面有人回答用flash,我猜想LZ是想知道flash又是怎么实现的呢?具体我也不清楚,我这里有一个小例子也许可以给你点启发。我曾经用二进制编辑器把一个MP3文件随便掐头去尾或者从中随便选取一段数据(数据大小有一个最小限度,太小是不能播放的)组成一个新的文件依然可以播放,所以可以把一个MP3文件切割成固定或者非固定大小的有序的数据包,每一个数据包相当于一个小MP3文件是可以直接播放的。3.如何防止MP3库被爬虫下载。猜测1:可以检测HTTP中的referer猜测2:搜索如何防止盗链应该会有所帮助。
■网友
那为什么下载一半的MP3没法播放?是有特殊播放解码需求么?
■网友
如果“流媒体”定义为可以边下载边播放,mp3是相当合格的流媒体,常见的视频格式也都如此。具体的方式,就是下载一部分,解码一部分,播放一部分。可以认为这种格式把多个小文件连在了一起,每次成功下载一个小文件,就可以打开。
■网友
MP3 ,但是是码率比较低的MP3,用的是Flash。
■网友
Flash读取网络上的MP3文件并同时进行播放。


    推荐阅读