• 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.

  • 相关阅读:
    音乐播放器
    对象的单体模式和面向对象
    箭头函数详解及this指向
    ES6的基础语法
    房贷灵活计算器
    [译文] SQL JOIN,你想知道的应该都有
    [Perl] 删除数组中重复元素
    [Qt] 自定义 滚动条 样式
    nodejs之异步思想
    导致人生失败的31种原因(转自csdn博客)
  • 原文地址:https://www.cnblogs.com/Dawn-bin/p/13033655.html
Copyright © 2020-2023  润新知