# SimpleMusic
**Repository Path**: ikunjee/SimpleMusic
## Basic Information
- **Project Name**: SimpleMusic
- **Description**: 一个简单的Android音乐播放器
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 3
- **Created**: 2020-07-08
- **Last Updated**: 2025-05-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SimpleMusic
Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自 [鼻子亲了脸](https://www.bzqll.com/)
## 1. 开发环境
- AndroidStudio 3.2
- AndroidSDK 5.0
- gradle 4.6
## 2. 模块划分
| 模块 | 简要说明 |
|--|--|
| 后台服务(Service) | 提供音乐播放的基本功能, 对外提供播放控制和列表操作的接口 |
| 主界面 | 展示我的音乐歌单, 可以对歌单里的音乐进行播放, 删除等操作 |
| 本地音乐 | 展示本地音乐列表, 提供对本地音乐的读取, 并且可以播放, 添加收藏, 删除 |
| 在线音乐 | 展示当前热门歌曲, 提供播放,添加收藏,删除等功能,需要时可以刷新列表 |
| 播放器界面 | 展示当前音乐的信息, 控制播放模式, 上一曲, 播放/暂停, 下一曲,以及查看和操作当前播放列表 |
## 3. 实现功能
1. 展示出本地的所有音乐文件,并显示相关信息
2. 对本地音乐进行播放, 添加歌单, 删除等操作
3. 播放过程中,可以暂停播放、恢复播放、上一首、下一首、拖动音乐进度条到任意时间点播放
4. 播放时,能显示当前播放音乐的进度,指示播放的时间, 并加载专辑图片
5. 可以设置播放的顺序为顺序播放、单曲循环、随机播放等等
6. 音乐播放器等界面退出以后,音乐仍然能在后台播放
7. 每次启动音乐播放器,播放器装载之前的播放列表,并把列表中的第一首音乐作为默认的首播曲
8. 再次打开播放器,能显示当前音乐的实时信息
9. 可以连接到网络,播放网络上的音乐
10. 缓存网络音乐列表, 需要时刷新, 也可以添加歌单或者移除
11. 音频焦点控制, 被其他音频打断后能继续播放
## 4. 简要说明
### 各java文件的作用
| 文件名 | 功能 |
|--|--|
| /java/db/*.java | litepal采用对象映射操作数据库, 每个类对应一张表 |
| /java/view/RotateAnimator.java | 唱盘动画制作 |
| /java/bean/Music.java | 音乐类 |
| /java/adapter/*.java | 适配器类 |
| /java/activity/*.java | 所有活动 |
| /java/service/MusicService.java | 音乐服务 |
| /java/util/Utils.java | 工具类, 封装了一些常用操作 |
### 各xml文件的作用
| 文件名 | 功能 |
|--|--|
| /res/anim/*.xml | Activity切换动画 |
| /res/layout/activity_*.xml | 界面布局 |
| /res/layout/music_item.xml | 音乐列表项布局 |
| /res/layout/playinglist_item.xml | 播放列表项布局 |
| /res/layout/layout_discview.xml | 播放器唱盘布局 |
| /res/layout/nav_header.xml | 侧拉菜单头布局 |
| /res/menu/main.xml | 主界面活动跳转菜单布局 |
| /res/menu/nav_menu.xml | 侧拉菜单项布局 |