`
ishelf
  • 浏览: 106488 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多

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

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
- <Result>
- <Catagory cID="0">
  歌手排行 
  <SubCatagory Rank="1" Rex="<td><span>(.*?)\\.</span><a href=\"(.*?)\".*?>(.*?)</a></td>" Url="http://list.mp3.baidu.com/top/top200.html" cID="0" cName="歌手排行" cValue="歌手TOP200" /> 
  <SubCatagory Rank="2" Rex="<td><span>(.*?)\\.</span><a href=\"(.*?)\".*?>(.*?)</a></td>" Url="http://list.mp3.baidu.com/top/rihangeshou.html" cID="0" cName="歌手排行" cValue="日韩歌手" /> 
  <SubCatagory Rank="3" Rex="<td><span>(.*?)\\.</span><a href=\"(.*?)\".*?>(.*?)</a></td>" Url="http://list.mp3.baidu.com/top/oumeigeshou.html" cID="0" cName="歌手排行" cValue="欧美歌手" /> 
  </Catagory>
- <Catagory cID="1">
  歌曲排行 
  <SubCatagory Rank="2" Rex="<td class="tdc">.*?title='(.*?)'>.*?<td class="tdd">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/top100.html" cID="1" cName="歌曲排行" cValue="新歌TOP100" /> 
  <SubCatagory Rank="3" Rex="<td class="tdc">.*?>(.*?)</.*?<td class="tdd">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/top500.html" cID="1" cName="歌曲排行" cValue="歌曲TOP500" /> 
  <SubCatagory Rank="4" Rex="<td class=\"tdb\">.*?>(.*?)</a.*?<td class=\"tdc\"><.*?>(.*?)</" Url="http://list.mp3.baidu.com/top/bangping.html" cID="1" cName="歌曲排行" cValue="中文金曲榜" /> 
  <SubCatagory Rank="5" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/rihan.html" cID="1" cName="歌曲排行" cValue="日韩流行风" /> 
  <SubCatagory Rank="6" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/oumei.html" cID="1" cName="歌曲排行" cValue="欧美金曲" /> 
  <SubCatagory Rank="7" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/movie.html" cID="1" cName="歌曲排行" cValue="影视金曲" /> 
  <SubCatagory Rank="8" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/duichang.html" cID="1" cName="歌曲排行" cValue="热门对唱" /> 
  <SubCatagory Rank="9" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/yaogun.html" cID="1" cName="歌曲排行" cValue="摇滚歌曲榜" /> 
  <SubCatagory Rank="10" Rex="<a href=\".*?>(.{1,5})-(.{1,10})</a></td>" Url="http://list.mp3.baidu.com/top/minyue.html" cID="1" cName="歌曲排行" cValue="中国民乐" /> 
  <SubCatagory Rank="11" Rex="<td class=\"tdc\">.*?title='(.*?)'>.*?<td class=\"tdd\">.*?title='(.*?)'>" Url="http://list.mp3.baidu.com/top/junlvminge.html" cID="1" cName="歌曲排行" cValue="流金岁月" /> 
  </Catagory>
- <Catagory cID="2">
  音乐分类 
  <SubCatagory Rank="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="经典老歌" /> 
  <SubCatagory Rank="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="网络歌曲" /> 
  <SubCatagory Rank="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舞曲" /> 
  <SubCatagory Rank="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="轻音乐" /> 
  <SubCatagory Rank="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="伤感" /> 
  <SubCatagory Rank="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="寂寞" /> 
  <SubCatagory Rank="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="想哭" /> 
  <SubCatagory Rank="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="非主流" /> 
  <SubCatagory Rank="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后" /> 
  <SubCatagory Rank="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后" /> 
  <SubCatagory Rank="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="校园民谣" /> 
  <SubCatagory Rank="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="民歌" /> 
  <SubCatagory Rank="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="相声" /> 
  <SubCatagory Rank="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="儿歌" /> 
  </Catagory>
- <Catagory cID="3">
//.......................略

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

    public static final class OnLine{
        public static final String ID = "_id";

        public static final String URL = "Url";

        public static final String NAME = "Name";
        public static final String ALBUM = "album";
        public static final String ARTIST = "artist";

        public static final String CATAGORY_ID = "cID";
        public static final String CATAGORY_NAME = "cName";
        public static final String CATAGORY_VALUE = "cValue";
        public static final String RANK = "Rank";
        public static final String REX = "Rex";

    }

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

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

  1. 在线播放会出现中断问题
  2. 歌词同步
  3. 接下来UI的实现,例如歌词滚动
分享到:
评论
1 楼 w1048499078 2012-04-27  
能给我源代码  学习么  我邮箱是274633305@qq.com
    谢谢你  LZ    最近一直在学习这个 

相关推荐

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

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

    Android MusicPlayer音乐播放器源码.zip

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

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

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

    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