根据上一篇文章中对百度MP3页面的解析,生成如下格式的xml文档。

Xml代码
  1. <?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
  2. -<Result>
  3. -<CatagorycID="0">
  4. 歌手排行
  5. <SubCatagoryRank="1"Rex="<td><span>(.*?)//.</span><ahref=/"(.*?)/".*?>(.*?)</a></td>"Url="http://list.mp3.baidu.com/top/top200.html"cID="0"cName="歌手排行"cValue="歌手TOP200"/>
  6. <SubCatagoryRank="2"Rex="<td><span>(.*?)//.</span><ahref=/"(.*?)/".*?>(.*?)</a></td>"Url="http://list.mp3.baidu.com/top/rihangeshou.html"cID="0"cName="歌手排行"cValue="日韩歌手"/>
  7. <SubCatagoryRank="3"Rex="<td><span>(.*?)//.</span><ahref=/"(.*?)/".*?>(.*?)</a></td>"Url="http://list.mp3.baidu.com/top/oumeigeshou.html"cID="0"cName="歌手排行"cValue="欧美歌手"/>
  8. </Catagory>
  9. -<CatagorycID="1">
  10. 歌曲排行
  11. <SubCatagoryRank="2"Rex="<tdclass="tdc">.*?title='(.*?)'>.*?<tdclass="tdd">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/top100.html"cID="1"cName="歌曲排行"cValue="新歌TOP100"/>
  12. <SubCatagoryRank="3"Rex="<tdclass="tdc">.*?>(.*?)</.*?<tdclass="tdd">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/top500.html"cID="1"cName="歌曲排行"cValue="歌曲TOP500"/>
  13. <SubCatagoryRank="4"Rex="<tdclass=/"tdb/">.*?>(.*?)</a.*?<tdclass=/"tdc/"><.*?>(.*?)</"Url="http://list.mp3.baidu.com/top/bangping.html"cID="1"cName="歌曲排行"cValue="中文金曲榜"/>
  14. <SubCatagoryRank="5"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/rihan.html"cID="1"cName="歌曲排行"cValue="日韩流行风"/>
  15. <SubCatagoryRank="6"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/oumei.html"cID="1"cName="歌曲排行"cValue="欧美金曲"/>
  16. <SubCatagoryRank="7"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/movie.html"cID="1"cName="歌曲排行"cValue="影视金曲"/>
  17. <SubCatagoryRank="8"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/duichang.html"cID="1"cName="歌曲排行"cValue="热门对唱"/>
  18. <SubCatagoryRank="9"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/yaogun.html"cID="1"cName="歌曲排行"cValue="摇滚歌曲榜"/>
  19. <SubCatagoryRank="10"Rex="<ahref=/".*?>(.{1,5})-(.{1,10})</a></td>"Url="http://list.mp3.baidu.com/top/minyue.html"cID="1"cName="歌曲排行"cValue="中国民乐"/>
  20. <SubCatagoryRank="11"Rex="<tdclass=/"tdc/">.*?title='(.*?)'>.*?<tdclass=/"tdd/">.*?title='(.*?)'>"Url="http://list.mp3.baidu.com/top/junlvminge.html"cID="1"cName="歌曲排行"cValue="流金岁月"/>
  21. </Catagory>
  22. -<CatagorycID="2">
  23. 音乐分类
  24. <SubCatagoryRank="3"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&rf=idx&tn=baidump3&ct=134217728&lf=&rn=&word=%BE%AD%B5%E4%C0%CF%B8%E8&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="经典老歌"/>
  25. <SubCatagoryRank="4"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&rf=idx&tn=baidump3&ct=134217728&lf=&rn=&word=%CD%F8%C2%E7%B8%E8%C7%FA&lm=-1rf=bangdang"cID="2"cName="音乐分类"cValue="网络歌曲"/>
  26. <SubCatagoryRank="5"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=dj%CE%E8%C7%FA&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="DJ舞曲"/>
  27. <SubCatagoryRank="6"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%C7%E1%D2%F4%C0%D6&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="轻音乐"/>
  28. <SubCatagoryRank="7"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%C9%CB%B8%D0&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="伤感"/>
  29. <SubCatagoryRank="8"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%BC%C5%C4%AF&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="寂寞"/>
  30. <SubCatagoryRank="9"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%CF%EB%BF%DE&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="想哭"/>
  31. <SubCatagoryRank="10"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%B7%C7%D6%F7%C1%F7&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="非主流"/>
  32. <SubCatagoryRank="11"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=90%BA%F3&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="90后"/>
  33. <SubCatagoryRank="12"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=80%BA%F3&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="80后"/>
  34. <SubCatagoryRank="13"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%D0%A3%D4%B0%C3%F1%D2%A5&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="校园民谣"/>
  35. <SubCatagoryRank="14"Rex=""Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%C3%F1%B8%E8&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="民歌"/>
  36. <SubCatagoryRank="15"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%CF%E0%C9%F9&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="相声"/>
  37. <SubCatagoryRank="16"Rex="t:/"(.*?)/",s:/"(.*?)/",a:/"(.*?)/","Url="http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%B6%F9%B8%E8&lm=-1&rf=bangdang"cID="2"cName="音乐分类"cValue="儿歌"/>
  38. </Catagory>
  39. -<CatagorycID="3">
  40. //.......................略

这里需要重载MediaStore类,加入以下几个属性

Java代码
  1. publicstaticfinalclassOnLine{
  2. publicstaticfinalStringID="_id";
  3. publicstaticfinalStringURL="Url";
  4. publicstaticfinalStringNAME="Name";
  5. publicstaticfinalStringALBUM="album";
  6. publicstaticfinalStringARTIST="artist";
  7. publicstaticfinalStringCATAGORY_ID="cID";
  8. publicstaticfinalStringCATAGORY_NAME="cName";
  9. publicstaticfinalStringCATAGORY_VALUE="cValue";
  10. publicstaticfinalStringRANK="Rank";
  11. publicstaticfinalStringREX="Rex";
  12. }

这样将在线的MP3资源和播放器源码在数据结构上实现了一一对应,这里的url是每个分类的页面,通过该类中的正则表达式对该页面进行解析得到所有的音乐资源,然后在一个activity中显示出来并实现点击后在线播放。

现在为止从整体上已经实现了在线播放,还存在以下问题需要解决

  1. 在线播放会出现中断问题
  2. 歌词同步
  3. 接下来UI的实现,例如歌词滚动

更多相关文章

  1. Android音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)
  2. Android高手进阶教程(十八)之---列出Android设备中所有启动的服
  3. Android之MediaPlayer一个bug
  4. Android:使用MediaPlayer播放本地音乐
  5. Android(安卓)音乐播放器的实现(一)自定义按钮的实现
  6. Android音乐播放器【安卓进化二十】
  7. Android实现控制第三方音乐播放器暂停/播放
  8. 【Android】_音乐列表_仿网易云音乐播放器2(读取本地mp3)
  9. 多媒体之播放音乐——MediaPlayer

随机推荐

  1. Android国际化快捷设置
  2. Android(安卓)Studio如何设置代码自动提
  3. 个人对学习Android应用与Android系统的心
  4. HTC Android新机Vision曝光
  5. [译] Android应用程序基础 >> 应用程序的
  6. RecyclerView机制解析: ChildHelper
  7. Android内置应用到系统的方法总结
  8. android 的handler 机制
  9. Android中RecyclerView如何像iOS的UITabl
  10. AsyncTask(介绍篇二)