`

android播放器(music player)源码分析5(在线播放功能)

 
阅读更多

根据上一篇文章中对百度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的实现,例如歌词滚动
分享到:
评论

相关推荐

    Android MusicPlayer音乐播放器源码-IT计算机-毕业设计.zip

    5. **通知和远程控制**:Android MusicPlayer源码还会涉及通知栏控制和媒体播放意图(MediaSession)。通过创建Notification,用户即使在主屏幕之外也能操作音乐播放。媒体播放意图允许系统级别的媒体控制器(如锁屏...

    Android移动开发(音乐播放器 musicplayer-master)

    Android小项目(音乐播放器 musicplayer-master) 本安卓项目包括:登录、注册、增删改查等App基本操作,可成功运行。 如遇导入运行失败等问题,请自行通过Google、百度等方式进行解决,楼主不负责远程项目部署、...

    Android MusicPlayer音乐播放器源码.zip

    《Android MusicPlayer音乐播放器源码解析》 在Android平台上,开发一款音乐播放器是许多开发者热衷的项目,因为它涉及到多媒体处理、用户界面设计、服务管理等多个技术领域。本篇将深入探讨“Android MusicPlayer...

    Android源码——MusicPlayer音乐播放器源码.zip

    总结,MusicPlayer音乐播放器的源码分析涵盖了Android多媒体框架、UI设计、数据管理、服务设计等多个方面,对于提升Android应用开发者的技能具有极高的价值。通过学习和研究,开发者不仅可以掌握音乐播放器的实现...

    Android 4.0 MusicPlayer 源码

    在Android 4.0(Ice Cream Sandwich)系统中,MusicPlayer是系统内置的音乐播放应用,它提供了丰富的功能,如播放本地音乐库、播放列表管理、音效设置等。源码分析可以帮助我们深入理解Android多媒体处理、服务、...

    Android简易本地音乐播放器源码,基于Android的简易本地音乐播放器源码

    5. **文件遍历与选择**:为了找到并播放本地音乐,源码可能包含了读取设备存储上的音乐文件(通常位于外部存储的Music目录),这需要使用到文件I/O操作和文件遍历的技巧。 6. **ListView或RecyclerView**:为了展示...

    Android MusicPlayer音乐播放器源码.zip源码资源下载

    在移动设备上,音乐播放器是必不可少的应用之一,Android平台上的MusicPlayer源码为我们提供了一个深入理解音频处理和UI设计的绝佳实例。本文将针对"Android MusicPlayer音乐播放器源码.zip"进行详细分析,探讨其在...

    Android程序研发源码Android MusicPlayer音乐播放器源码.zip

    MusicPlayer源码可能会包含一个`Service`,负责在后台持续播放音乐,并通过`BroadcastReceiver`接收控制命令,如改变音量或切换歌曲。理解如何启动和绑定服务,以及如何在服务中与其他组件通信是关键知识点。 此外...

    Android MusicPlayer音乐播放器源码.rar

    【Android MusicPlayer音乐播放器源码】是一款专为Android平台设计的音乐播放应用程序,它提供了丰富的功能,包括播放、暂停、上一首、下一首、音量控制、播放列表管理等。通过深入研究这个源码,我们可以了解到...

    MusicPlayer

    【MusicPlayer】是一款基于Android平台的音乐播放器应用,它为用户提供了一个简洁而功能丰富的界面,用于管理和播放本地存储的音乐文件。通过深入研究这款应用的源码,我们可以了解到许多关于Android开发、音频处理...

    android 项目源码下载:22套影音播放类项目

    Android MusicPlayer音乐播放器源码.rar Android RTSP播放器源码.rar Android 动画顺序播放源码.rar Android 卡拉OK,歌词同步程序.rar Android 在线播放器源码.rar Android 天天动听悬浮歌词源码.rar Android 录音...

    android实战 音乐播放器(android studio源程序工程)

    Android Studio提供了丰富的功能,如代码编辑、调试、性能分析以及项目构建工具,使得开发者可以高效地创建高质量的Android应用。在这个音乐播放器项目中,你将看到如何使用Android Studio来组织和管理代码文件,...

    Android 音乐播放器源码

    在Android平台上,开发一款音乐播放器是一个常见的任务,也是一个学习Android应用开发的绝佳实践项目。...通过深入学习和分析`MusicPlayer`源码,开发者不仅可以理解音乐播放器的工作原理,还能提升Android开发技能。

    安卓音乐播放器MusicPlayer760.7z

    【Android音乐播放器MusicPlayer760项目解析】 在安卓平台上开发一款音乐播放器应用是一项常见的课程设计任务,旨在让学生掌握Android Studio的使用以及移动应用开发的基本技能。MusicPlayer760项目就是一个这样的...

    十大热门Android开源项目 之 android-UniversalMusicPlayer

    【Android Universal MusicPlayer】是一个备受关注的开源项目,旨在为开发者提供一个通用的、跨多种Android设备的音乐播放器模板。这个项目不仅适用于智能手机,还能适应平板电脑、车载信息娱乐系统、智能手表以及...

    android音乐播放器源码

    通过分析和学习这个音乐播放器源码,开发者可以深入了解Android多媒体编程,提高自己在实际项目中的开发能力。同时,这也是一个很好的起点,可以根据需求进行扩展,如添加音效设置、在线音乐流播放等功能。

Global site tag (gtag.js) - Google Analytics