一个精致的第三方音乐客户端
基于 Flutter 构建 · 支持多平台 · Material You 设计
KA Music 是一个功能丰富的 第三方音乐播放器,使用 Flutter 框架构建,支持 Android、iOS、Windows、macOS、Linux 及 Web 六大平台。它提供跨平台音乐搜索、在线播放、歌词展示、下载缓存等完整的音乐体验,并采用 Material You 设计语言,支持深色模式和高度自定义主题。
🔌 该项目通过第三方 API 获取音乐数据,仅供学习交流使用。
| 首页推荐 | 播放器 | 歌词 |
|---|---|---|
![]() | ![]() | ![]() |
| 个人库 | 搜索页 | 歌单详情 |
|---|---|---|
![]() | ![]() | ![]() |
| 类别 | 技术 |
|---|---|
| 框架 | Flutter (SDK ^3.11.5) |
| 语言 | Dart |
| 音频播放 | just_audio — 低延迟音频引擎 |
| 后台播放 | audio_service — 通知栏控制 & 后台保活 |
| 音频焦点 | audio_session — 系统级音频焦点管理 |
| HTTP | http (API 请求) + dio (文件下载) |
| 持久化 | shared_preferences — 设置 & 缓存 |
| 状态管理 | ChangeNotifier + AnimatedBuilder(原生方案) |
| 路由 | Navigator 1.0 |
| 设计系统 | Material 3 (Material You) |
| 代码规范 | flutter_lints |
┌─────────────────────────────────────┐
│ UI Layer │
│ Pages · Widgets · AppTheme │
├─────────────────────────────────────┤
│ Controllers │
│ Auth · Player · Download · Theme │ ← ChangeNotifier
├─────────────────────────────────────┤
│ Services │
│ MusicApi · CacheService │
│ DownloadService · AudioHandler │
├─────────────────────────────────────┤
│ Core │
│ ApiClient (HTTP + 重试 + Session) │
├─────────────────────────────────────┤
│ Config │
│ AppConfig · Models │
└─────────────────────────────────────┘
X-Kg-Session-Id 持久化,自动恢复登录# 克隆仓库
git clone <repo-url>
cd kgka_music_hl
# 安装依赖
flutter pub get
# 运行(选择目标平台)
flutter run # 自动检测设备
flutter run -d android
flutter run -d ios
flutter run -d windows
flutter run -d macos
flutter run -d linux
flutter run -d chrome
| 变量 | 说明 | 默认值 |
|---|---|---|
KA_MUSIC_API_BASE_URL | 自定义默认 API 地址 | https://music.api.hoilai.cn |
KA_MUSIC_DEBUG_LYRICS | 启用歌词调试日志 | true |
# 编译时指定环境变量示例
flutter run --dart-define=KA_MUSIC_API_BASE_URL=https://your-api.com
lib/
├── main.dart # 应用入口
├── assets/
│ └── logo.jpg # App Logo
├── config/
│ └── app_config.dart # 全局配置(API 地址、缓存大小等)
├── core/
│ └── api_client.dart # HTTP 客户端(重试、Session)
├── controllers/
│ ├── auth_controller.dart # 登录认证
│ ├── player_controller.dart# 播放引擎
│ ├── download_controller.dart # 下载管理
│ └── theme_controller.dart # 主题管理
├── models/
│ ├── music_models.dart # 音乐领域模型
│ └── app_version.dart # 版本更新模型
├── services/
│ ├── music_api.dart # API 接口封装
│ ├── cache_service.dart # 数据缓存(SWR)
│ ├── download_service.dart # 文件下载服务
│ ├── music_audio_handler.dart # 后台音频服务
│ └── ... # 其他服务
└── ui/
├── app_theme.dart # 主题定义
├── adaptive_layout.dart # 响应式布局
├── pages/ # 页面
│ ├── home_page.dart # 首页
│ ├── player_page.dart # 播放器
│ ├── library_page.dart # 我的
│ ├── search_page.dart # 搜索
│ └── ... # 其他页面
└── widgets/ # 可复用组件
├── mini_player.dart # 迷你播放栏
├── artwork.dart # 封面组件
└── ... # 其他组件
详细的版本更新日志请查看 update.md。
v2.0.5 主要更新:
本项目仅供学习交流使用,请勿用于商业用途。
Made with XiaoMai and Flutter
Dart
90.9%
Kotlin
5.2%
C++
1.9%
CMake
1.5%
一个精致的第三方音乐客户端
基于 Flutter 构建 · 支持多平台 · Material You 设计
KA Music 是一个功能丰富的 第三方音乐播放器,使用 Flutter 框架构建,支持 Android、iOS、Windows、macOS、Linux 及 Web 六大平台。它提供跨平台音乐搜索、在线播放、歌词展示、下载缓存等完整的音乐体验,并采用 Material You 设计语言,支持深色模式和高度自定义主题。
🔌 该项目通过第三方 API 获取音乐数据,仅供学习交流使用。
| 首页推荐 | 播放器 | 歌词 |
|---|---|---|
![]() | ![]() | ![]() |
| 个人库 | 搜索页 | 歌单详情 |
|---|---|---|
![]() | ![]() | ![]() |
| 类别 | 技术 |
|---|---|
| 框架 | Flutter (SDK ^3.11.5) |
| 语言 | Dart |
| 音频播放 | just_audio — 低延迟音频引擎 |
| 后台播放 | audio_service — 通知栏控制 & 后台保活 |
| 音频焦点 | audio_session — 系统级音频焦点管理 |
| HTTP | http (API 请求) + dio (文件下载) |
| 持久化 | shared_preferences — 设置 & 缓存 |
| 状态管理 | ChangeNotifier + AnimatedBuilder(原生方案) |
| 路由 | Navigator 1.0 |
| 设计系统 | Material 3 (Material You) |
| 代码规范 | flutter_lints |
┌─────────────────────────────────────┐
│ UI Layer │
│ Pages · Widgets · AppTheme │
├─────────────────────────────────────┤
│ Controllers │
│ Auth · Player · Download · Theme │ ← ChangeNotifier
├─────────────────────────────────────┤
│ Services │
│ MusicApi · CacheService │
│ DownloadService · AudioHandler │
├─────────────────────────────────────┤
│ Core │
│ ApiClient (HTTP + 重试 + Session) │
├─────────────────────────────────────┤
│ Config │
│ AppConfig · Models │
└─────────────────────────────────────┘
X-Kg-Session-Id 持久化,自动恢复登录# 克隆仓库
git clone <repo-url>
cd kgka_music_hl
# 安装依赖
flutter pub get
# 运行(选择目标平台)
flutter run # 自动检测设备
flutter run -d android
flutter run -d ios
flutter run -d windows
flutter run -d macos
flutter run -d linux
flutter run -d chrome
| 变量 | 说明 | 默认值 |
|---|---|---|
KA_MUSIC_API_BASE_URL | 自定义默认 API 地址 | https://music.api.hoilai.cn |
KA_MUSIC_DEBUG_LYRICS | 启用歌词调试日志 | true |
# 编译时指定环境变量示例
flutter run --dart-define=KA_MUSIC_API_BASE_URL=https://your-api.com
lib/
├── main.dart # 应用入口
├── assets/
│ └── logo.jpg # App Logo
├── config/
│ └── app_config.dart # 全局配置(API 地址、缓存大小等)
├── core/
│ └── api_client.dart # HTTP 客户端(重试、Session)
├── controllers/
│ ├── auth_controller.dart # 登录认证
│ ├── player_controller.dart# 播放引擎
│ ├── download_controller.dart # 下载管理
│ └── theme_controller.dart # 主题管理
├── models/
│ ├── music_models.dart # 音乐领域模型
│ └── app_version.dart # 版本更新模型
├── services/
│ ├── music_api.dart # API 接口封装
│ ├── cache_service.dart # 数据缓存(SWR)
│ ├── download_service.dart # 文件下载服务
│ ├── music_audio_handler.dart # 后台音频服务
│ └── ... # 其他服务
└── ui/
├── app_theme.dart # 主题定义
├── adaptive_layout.dart # 响应式布局
├── pages/ # 页面
│ ├── home_page.dart # 首页
│ ├── player_page.dart # 播放器
│ ├── library_page.dart # 我的
│ ├── search_page.dart # 搜索
│ └── ... # 其他页面
└── widgets/ # 可复用组件
├── mini_player.dart # 迷你播放栏
├── artwork.dart # 封面组件
└── ... # 其他组件
详细的版本更新日志请查看 update.md。
v2.0.5 主要更新:
本项目仅供学习交流使用,请勿用于商业用途。
Made with XiaoMai and Flutter
Dart
90.9%
Kotlin
5.2%
C++
1.9%
CMake
1.5%