
一款基于 Flutter 的 Navidrome / Subsonic / OpenSubsonic 音乐客户端,面向自建音乐服务场景,重点解决多线路访问、跨设备播放、歌词封面补全、本地下载与服务器侧离线导入等实际问题。
使用文档
gitbook/README.md:快速上手文档
仓库组成
Echoes 客户端:负责播放、浏览、搜索、歌单、收藏、歌词/封面增强、本地下载、缓存与设置
gdstudio-embeded-service:可选的服务器侧离线导入服务,用于把远程搜索到的歌曲写入服务器音乐目录并触发 Navidrome 扫描
项目特点
多音乐库与智能线路切换
支持管理多个音乐库,每个音乐库可配置多条服务器地址
启动时按优先级探测可达地址,自动选择当前可用线路
运行中连接异常时自动 fallback,高优先级线路恢复后可自动回切
支持手动锁定线路、延迟测速和拖拽调整地址优先级
围绕 Navidrome 的完整听歌体验
支持 Token/Salt 与 API Key 登录,并自动检测 OpenSubsonic 能力
提供音乐流首页、专辑/歌手/歌曲/歌单浏览、收藏、搜索与播放队列
迷你播放器 + 全屏播放器,支持后台播放、系统通知栏控制和歌词面板
提供播放统计、收藏统计与缓存统计,方便观察使用情况
音质、缓存与播放策略可配置
支持原始直连和多档转码音质
可按 Wi-Fi / 移动数据自动切换音质
支持交叉淡入淡出、下一首预缓存、音频缓存上限与清理
提供日志导出、版本检查和缓存管理等运维向能力
歌词与封面增强
多源歌词:服务端、LRCLIB、网易云、自定义 API
多源封面:服务端、Fanart.tv、MusicBrainz、自定义 API
支持提供商优先级配置、同步歌词逐行高亮、点击歌词跳转
根据封面提取主色生成播放器背景氛围,并缓存歌词与资源
下载与离线导入双链路
支持歌曲、专辑、歌单的本地下载和下载管理
支持扫描已下载文件,统一纳入客户端管理
支持远程搜索与试听,并通过 Embed Service 将歌曲导入服务器音乐目录
GitBook 文档覆盖 Navidrome、Embed Service、客户端接入与排障
跨平台实现,但以移动端为先
使用 Flutter 一套代码覆盖 Android、iOS、macOS、Windows、Linux、Web
当前优先打磨 Android 与 iOS 体验,桌面端与 Web 仍在持续适配
界面截图













