Android音乐播放器

大家抱歉~~,课业繁忙,暂时鸽了。以后还是会补上的。源代码分享给大家了。    --2020.6.4

---------------------------------------------------------------------------------------------------

收到了好多小伙伴的私信,那就和大家分享一下程序开发的思路和代码。

功能说明->说明文档

演示视频->Android音乐播放器

源代码->GitHub

每个功能具体实现可能需要单开一篇博客来介绍,不然篇幅太长大家也就失去了耐心。

 

1.系统功能

图1.1页面层次

图1.2首页 功能概述图

图1.3服务 功能概述图

 

系统界面和功能概述如上图所示,主要具体实现功能如下:(*与代码量/实现难度成正比)

  1. 点击播放音乐*
  2. 后台播放***
  3. 点击/自动播放下一曲**
  4. 单曲循环/列表循环*
  5. 进度条显示,可拖动播放的进度条
  6. 歌曲名/歌手名搜索**
  7. 自动扫描获取手机内存歌曲*
  8. 联网时加载预置在线歌曲*
  9. 初次打开软件,请求获取存储权限*
  10. 侧滑菜单栏界面+主页面动态联动***
  11. 前端交互优化,点击水波纹效果/控制键按压反色动态效果**

2.涉及到的技术点

技术难点:

①    实现完全的前后端分割,activity与service分割,activity结束后service仍可后端运行,activity再次启动时,绑定service并获取信息设置页面信息。

②    侧滑菜单栏的实现页面切换时,为了减小页面切换的延迟,使用动态fragment,并将每个创建的fragment压栈。

③    为了达到列表的筛选效果,无方法可以调用的情况下,自己实现了基于歌名和歌手名的筛选逻辑。

④    设计了软件图标、界面和所有的交互按钮动态效果。

用到的组件/类:

Activity中:

ImageView(所有的点击图标)、TextView(显示信息)、ToolBar+SearchView(搜索框)、RecyclerView+ LinearLayoutManager (列表)、SeekBar+Handler+ Runnable(进度条)、BroadcastReceiver+ IntentFilter (界面信息更新)、ConnectivityManager+ NetworkInfo (网络状态)、ContentResolver+ Cursor(读取内存歌曲)

DrawerLayout+ NavigationView+ Fragment+ FragmentManager+ FragmentTransaction(侧滑菜单)、DisplayMetrics+ RelativeLayout(主页面动态联动)

 

Service中:

Service(音乐服务) 、IntentService(转发更新信息)、MediaPlayer(音乐播放)

 

启动页面:

RxPermissions(github第三方开源库  动态权限获取)

 

其他:Toast、Intent等

3.功能实现

  1.后台音乐播放构架

  2.待更......

  3.

posted @ 2020-06-02 20:52  Dawn-bin  阅读(1347)  评论(0编辑  收藏  举报