CyShineMusic 是一个使用 Flutter 构建的 Android 音乐客户端,提供自定义源管理、音乐检索、下载管理、本地歌曲库和播放器能力。项目重点放在移动端体验、本地媒体整理、歌词展示和 Material 3 界面。
项目不内置或分发任何音乐内容。用户需要自行配置可用的自定义源,并自行确认相关内容来源的合法性。
欢迎加入 QQ 群交流使用问题、功能建议和开发想法:949229928。
- 自定义源:支持导入、启用、禁用和管理自定义音乐源。
- 音乐检索:提供关键词搜索、来源筛选和搜索结果分页。
- 下载管理:支持下载队列、实时进度、完成记录和失败记录。
- 本地歌曲库:扫描自定义目录,读取本地音频标签,并支持排序、搜索、选择和批量操作。
- 元数据整理:支持写入歌曲名、歌手、专辑、封面和歌词。
- 歌词体验:支持逐句歌词、逐字歌词、翻译/音译展示和播放同步。
- 本地播放器:支持在线播放、本地播放、后台播放、系统媒体通知和耳机按键控制。
- 播放队列:支持上一首、下一首、随机、循环和播放队列管理。
- 主题外观:支持浅色、深色、跟随系统、动态取色和自定义主题色。
- 调试工具:提供应用内日志和基础网络设置,方便定位自定义源或下载问题。
![]() 发现 |
![]() 歌单详情 |
![]() 本地歌曲 |
![]() 播放器 |
![]() 逐字歌词 |
![]() 设置 |
![]() 浅色外观 |
![]() 深色外观 |
![]() 在线歌单 |
- Flutter stable,Dart SDK
>=3.11.4 <4.0.0 - Android SDK
- Android 真机或模拟器
flutter pub get
flutter analyze
flutter test
flutter run仅构建 arm64-v8a 发布包:
flutter build apk --target-platform=android-arm64构建渠道由当前 Git 分支自动决定:main 生成包名
com.cyshine.music、应用名“栖弦”的正式版,dev 生成包名
com.cyshine.music.dev、应用名“栖弦dev”的开发版,两者可同时安装。Release
构建分别使用固定签名;签名文件配置见 android/signing/README.md。
构建产物位于:
build/app/outputs/flutter-apk/app-release.apk
lib/
├── main.dart # 应用入口与依赖初始化
├── app.dart # MaterialApp、主题与全局状态
├── router.dart # 页面路由
├── core/
│ ├── api/ # 网络客户端与通用请求封装
│ ├── models/ # 音乐、歌词、音质与响应模型
│ ├── music_sources/ # 自定义源管理与运行时
│ ├── sdk/ # 源适配与解析辅助
│ ├── services/ # 下载、标签、歌词、权限与日志
│ ├── storage/ # 设置与本地持久化
│ └── ui/ # 通用 UI 组件
├── features/
│ ├── search/ # 搜索、来源筛选与音质选择
│ ├── downloads/ # 下载队列与历史记录
│ ├── songs/ # 本地歌曲库
│ ├── player/ # 播放器与歌词同步
│ ├── music_sources/ # 自定义源导入与管理
│ ├── playlists/ # 歌单与收藏管理
│ ├── settings/ # 下载、网络和外观设置
│ ├── shell/ # 应用导航框架
│ └── startup/ # 启动页
└── theme/ # Material 3 主题与动效
欢迎通过 Issues 提交问题或建议,也可以直接发起 Pull Request。提交前请至少运行:
flutter analyze
flutter test本项目基于 MIT License 开源。
本项目仅用于技术研究与学习交流,不提供任何音乐内容,不保证任何自定义源的可用性。使用者应遵守所在地区法律法规、第三方服务条款及著作权要求,并自行承担使用本项目产生的责任。










