Border Player 是一个面向 Windows 桌面的本地音乐播放器。
本项目是基于开源项目 Coriander Player 的二次修改版本,并在其基础上进行了界面、交互、启动体验、发布包和 Windows 桌面使用体验等方面的调整。
上游项目:
https://github.com/Ferry-200/coriander_player
Border Player 保留了 Coriander Player 的核心能力,并围绕 Windows 桌面场景做了进一步整理和修改。当前仓库包含主播放器源码、桌面歌词辅助程序、Rust 原生模块、Windows 构建配置以及发布包所需的运行文件组织方式。
主要功能包括:
- 本地音乐曲库管理
- 艺术家、专辑、文件夹和歌单浏览
- 播放列表与随机播放
- 歌词显示与歌词源选择(本地/在线,支持 LRC、QRC、KRC)
- 桌面歌词(独立窗口,支持锁定、颜色自定义)
- 播放页歌曲信息弹窗(标题、艺术家、专辑、时长、比特率、采样率、位深、大小、格式)
- 右键菜单(艺术家、专辑、下一首播放、添加到歌单、详细信息)
- 按名称排序时右侧字母索引栏(A-Z 快速跳转)
- 播放状态记忆(歌曲、列表、进度,下次启动自动恢复)
- WASAPI 独占模式(bit-perfect 输出,适合外接 DAC)
- 播放模式、随机、音量等设置持久保存
- Windows 桌面窗口、快捷键和启动体验优化
- 基于封面取色的现代化界面
- Flutter
- Dart
- Rust
- flutter_rust_bridge
- Windows desktop
- BASS 音频运行库
推荐普通用户下载 Release 页面中的安装包:
https://github.com/tingzhouhuige/Border-Player/releases
发布页通常会提供两种包:
BorderPlayerSetup-*.exe:标准 Windows 安装包,可选择安装位置,会创建快捷方式和卸载入口;卸载时默认保留曲库、设置、歌单和听歌统计,只有手动选择删除个人数据时才会清理。BorderPlayer-windows-x64-*.zip:绿色便携版,解压后运行border_player.exe。
- 优化质感模式主页切换性能:切换左侧栏内容时避免内容容器叠加动画,减少闪烁、拖影和卡顿。
- 优化主页玻璃质感控件的模糊合成,降低多个毛玻璃控件同时重绘时的性能开销。
- 优化播放页歌词切歌后的入场和滚动逻辑,减少歌词到达顶部时的瞬间抖动。
- 修复从播放页返回主页后迷你播放栏圆形封面重新刷新的问题,封面加载时保持旧图直到新图可用。
- 修复反馈入口缺少构建密钥时导致编译失败的问题,未配置密钥时改为提示不可用。
- 新增三种主页软件风格:基础、取色、质感,可在设置页一键切换。
- 质感风格支持使用当前歌曲封面生成主页模糊背景,并将主页按钮、迷你播放栏、弹窗等统一为玻璃质感。
- 优化播放详情页进入/退出动画、右键菜单动画和启动过渡,减少闪烁、残影和白屏突兀感。
- 优化主页封面取色、左上角品牌标识、迷你播放栏上一曲/播放/下一曲控制,以及多处按钮样式一致性。
- 优化质感风格下的主页背景切歌过渡、播放页首帧渲染和局部重绘性能,在不改变功能和视觉效果的前提下提升流畅度。
- 修复艺术家、专辑、歌单、搜索和详细信息等页面在质感风格下的背景和弹窗样式不统一问题。
- 修复设置页弹窗在取色/质感风格下样式不统一的问题,弹窗按钮和统计切换按钮会跟随当前风格。
- 调整新安装或清空配置后的默认设置:本地歌词优先、启动恢复播放关闭、浅色模式、默认软件风格为质感。
- 安装包卸载时默认保留曲库、设置、歌单和听歌统计,并提供“同时删除个人数据”的确认选项。
- 修复播放列表弹窗下方超出窗口边界的问题,弹窗位置自动适配窗口大小。
- 优化滚动条显示,主页列表、设置页、详情页和侧边栏的滚动条与内容分离,不再与歌曲项重叠。
- 移除所有鼠标悬停提示(Tooltip),界面更加简洁美观。
- 优化左上角品牌标识显示,减少小尺寸图标锯齿,并清理无用图标预览资源。
- 文件夹管理弹窗新增“扫描音乐”,可选择本地文件夹并立即扫描入库,同时自动加入文件夹目录。
- 左侧边栏在窗口高度较低时支持上下滚动。
- 设置页新增听歌统计,支持周、月、年、总四种统计范围;仅显示已有播放次数的歌曲,并按次数从高到低排序。
- 歌曲播放累计达到总时长 75% 后记一次播放次数,未达到不计入统计。
- 优化播放页小屏布局:播放列表改为底部按钮弹窗,右侧切换控件仅保留封面和歌词切换,封面居中并调整四周留白。
- 优化播放页小屏标题栏返回按钮与歌曲名的间距。
推荐本地环境:
- Flutter stable,启用 Windows 桌面支持
- Visual Studio Build Tools,安装 Desktop development with C++ 工作负载
- Git
- Rust 工具链
一键构建完整发布包(包含主程序、桌面歌词、BASS 运行库):
.\tools\build_windows_release.ps1输出目录:release_packages\full-windows-x64
指定版本发布目录示例:
.\tools\build_windows_release.ps1 -PackageName v2.0.2如果 BASS DLL 缺失,加 -DownloadBassIfMissing 参数会自动下载:
.\tools\build_windows_release.ps1 -DownloadBassIfMissing也可以用 build.bat 快速编译主程序和桌面歌词(不打包)。
单独构建主程序:
flutter pub get
flutter build windows --release构建完成后,主程序位于:
build\windows\x64\runner\Release\border_player.exe
注意:仅 flutter build windows 不会构建桌面歌词辅助程序,也不会包含 BASS 运行库。发布时请使用打包脚本或手动将 desktop_lyric\build\windows\x64\runner\Release 和 third_party\bass\windows\x64 目录一并打包。
本项目遵循 GNU General Public License v3.0。
由于 Border Player 是基于 GPLv3 项目 Coriander Player 的二次修改版本,发布二进制包时也需要遵守 GPLv3 要求,包括保留许可证文本、保留上游版权和许可声明,并提供对应版本的源代码。
更多说明见:
LICENSEFORK_NOTICE.md
Border Player 是 Coriander Player 的修改版本:
https://github.com/Ferry-200/coriander_player
感谢上游项目作者和相关开源依赖的工作。