需要 Node.js >= 22、pnpm >= 10 和 Rust 工具链,否则原生模块无法编译;pnpm dev 和 pnpm build 会自动编译 Rust 原生模块,只改 UI 时可设 SKIP_NATIVE_BUILD=true 跳过;默认只构建当前架构,不支持交叉编译。
SPlayer-Next
SPlayer-DevAGPL-3.0活跃维护跨平台桌面音乐播放器,基于 FFmpeg 兼容多种音频格式,并提供丰富的歌词显示与本地音乐库管理。
🎵 Cross-platform desktop music player with rich lyric support and wide audio format compatibility. 跨平台桌面音乐播放器,支持丰富歌词与多种音频格式
pnpm install
pnpm devREADME 未说明显存或 GPU 要求;支持 Windows、macOS、Linux 桌面平台,其中 Windows 任务栏歌词由原生模块实现。
跨平台桌面音乐播放器,支持丰富歌词与多种音频格式,基于 FFmpeg 和 Rust 打造
跨平台桌面音乐播放器,基于 FFmpeg 兼容多种音频格式,并提供丰富的歌词显示与本地音乐库管理。
核心能力
- 用 FFmpeg 解码 MP3、FLAC、WAV、APE 等格式
- 支持 LRC、QRC、YRC、TTML 逐字歌词与翻译
- 接入 Subsonic、Navidrome、Jellyfin、Emby 多服务器
- 用 Rust 原生模块实现音频引擎与实时 FFT 频谱
- 集成 Windows SMTC、Linux MPRIS、macOS Now Playing 与 Discord RPC
容易踩的坑
- nightlyv1.2.1-nightly.1076pre-release2026-11-06 · 2026-11-06 23:00 UTC
- v1.2.1-beta.1pre-release2026-11-06 · 2026-11-06 16:00 UTC
查看更新说明
What's Changed
- fix: 修复歌词图片导出未沿用字体配置的问题 by @d4yt1m3 in https://github.com/SPlayer-Dev/SPlayer-Next/pull/408
- fix: 为歌词导出图片的 Canvas 设置 lang 属性 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/410
- fix: 拒绝嵌套扫描目录时误删已入库曲目 by @abkkkbb in https://github.com/SPlayer-Dev/SPlayer-Next/pull/414
- fix: 下载扩展名优先采用响应文件名 by @Isilsolme in https://github.com/SPlayer-Dev/SPlayer-Next/pull/417
- feat: 为专辑歌曲列表添加分碟栏目 by @WorldSansha in https://github.com/SPlayer-Dev/SPlayer-Next/pull/424
- feat: AutoMix 智能混音过渡 by @imsyy in https://github.com/SPlayer-Dev/SPlayer-Next/pull/429
- fix: 修复低音量段无声与进度跳转时的音量突增 by @foragedysetour in https://github.com/SPlayer-Dev/SPlayer-Next/pull/419
- fix: 修复 Windows 11 小任务栏下歌词显示不全 by @lyimoexiao in https://github.com/SPlayer-Dev/SPlayer-Next/pull/428
- feat: 导出歌词图片弹出对话框选择路径 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/430
- fix(media-ctrl): 添加随机和循环模式的支持,更新媒体事件类型和相关逻辑 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/432
New Contributors
- @d4yt1m3 made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/408
- @Isilsolme made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/417
- @WorldSansha made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/424
- @foragedysetour made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/419
- @lyimoexiao made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/428
Full Changelog: https://github.com/SPlayer-Dev/SPlayer-Next/compare/v1.2.0...v1.2.1-beta.1
- v1.2.0最新正式版2026-10-24 · 2026-10-24 09:24 UTC
✨ 新增功能
- 插件支持独立音源,统一权限、搜索入口和 MCP 播放队列查询(#383)
- 新增智能交叉过渡,支持双槽位预载和曲尾交接调节(#319、#332)
- 支持 Windows WASAPI 独占输出,Linux PipeWire 自适应采样率(#233、
abb5a98c) - 已下载歌曲优先播放,显示下载状态并支持文件复制(
4e4a7118) - 新增共享元素过渡、减弱动画和切歌发光(#392、
1f935c24) - 窄窗口下侧栏自动折叠,播放栏和顶栏自动精简(
833e83b6,fixed #149) - 新增歌曲列表紧凑样式和播放按钮行为设置(
084b54a7fixed #401、1477d265) - 新增搜索页播放行为设置和打开设置快捷键(
dc8eab18、#360) - 支持输出设备独立音量记忆、屏幕常亮和息屏抑制(
a7c378aa、#196、c6373afffixed #191) - 同步升级 AMLL 0.6.0,新增歌词组件配置和副行字号设置(
3f3729c7、c22e088a、#279) - 优化 Windows 安装与卸载向导(
3f306fad)
🛠️ 修复与优化
- 重构流媒体同步、收藏和播放会话,修复收藏竞态与无音源跳过(#379、
aa2649df,fixed #375、#372、#336) - 修复独占输出欠载、PipeWire 重建循环和切歌时音频流未停止(#382、
fc97fc0e,fixed #304) - 修复交叉过渡竞态、预载失败重试和停止时的资源清理(
b6d86999、35dcdfab) - 修复随机播放首曲固定、单曲循环计时和播放日志上报(
3dfbb45afixed #337、d03155e8fixed #339、#340、ab3c56cafixed #276) - 修复酷狗歌单超过 300 首被截断、云盘空歌手和 ID3 前缀 MP4 解码失败(#248、
7a828d06fixed #325、181640d9fixed #329) - 修复网络故障误报与连续跳曲(
80994644fixed #314) - 修复逐字音译误显示、TTML 元数据多值和下载 TTML 被重新格式化(#275、#380、#270、
ee0ba63bfixed #338) - 修复表头重叠、排序状态串用、弹窗层级和设置搜索定位(#322 fixed #384、
05dbbeb8、7eff9c49fixed #227、2f42a315fixed #385) - 统一音量曲线,支持小键盘和 Windows 键录入,修正长按重复触发(
e7d30c25fixed #361、9d3ca78ffixed #406) - 修复登录状态与歌单同步、网易云扫码设备名(
7c2aea7d、#334) - 修复 MPRIS 多歌手信息显示(#219)
- 改用内置窗口状态持久化,修复冷启动和首屏滚动稳定性(
e77ba7a0、aa460b50、72addc90) - 修复更新通道校验和 nightly 更新源(
8109df21、d86df421、3b02a763),修复 nightly 无法获取更新(#299) - 升级 Electron 44、Vite 8、pnpm 12 和 Node 24(
f2958ceb、12ca0a59、44ddac5d)
What's Changed
- fix: 修复托盘恢复后缩略图工具栏消失 by @Holden-Cross in https://github.com/SPlayer-Dev/SPlayer-Next/pull/246
- fix(build): 修复 postinstall 脚本以确保 Electron 安装 by @laoshuikaixue in https://github.com/SPlayer-Dev/SPlayer-Next/pull/178
- fix: 修复 mpris 在多 artist 时仅传入单字符串 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/219
- fix: Linux 下通过 RAII 守卫注入 PIPEWIRE_PROPS 确保 PipeWire 硬件时钟自适应采样率 by @scsfu in https://github.com/SPlayer-Dev/SPlayer-Next/pull/226
- refactor: 移除多余的侧边栏播放统计相关设置 by @PhantomPixel-0418 in https://github.com/SPlayer-Dev/SPlayer-Next/pull/267
- fix: 修复 AMLL 歌词在有逐字音译时仍显示逐行音译 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/275
- refactor(audio-engine): 使用 serde_json 构建 PipeWire 属性 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/283
- fix: 修复下载 TTML 歌词时被重新格式化的问题 by @kid141252010 in https://github.com/SPlayer-Dev/SPlayer-Next/pull/270
- fix: 提前初始化全屏歌词与背景 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/282
- fix: 修复 nightly 通道无法获取更新 by @Yueby in https://github.com/SPlayer-Dev/SPlayer-Next/pull/299
- feat: Windows 平台支持 WASAPI 独占模式音频输出 by @GLZ-gaoxiaoling in https://github.com/SPlayer-Dev/SPlayer-Next/pull/233
- fix: 修复高采样率播放欠载与音频输出稳定性问题 by @imsyy in https://github.com/SPlayer-Dev/SPlayer-Next/pull/309
- feat: 实现下一曲真实预载与双槽位播放 by @imsyy in https://github.com/SPlayer-Dev/SPlayer-Next/pull/319
- feat: 新增智能交叉过渡与播放过渡设置 by @imsyy in https://github.com/SPlayer
- AutoMix2026-10-20 · 2026-10-20 17:39 UTC
这个版本没有写更新说明。
- v1.2.0-alpha.1pre-release2026-09-14 · 2026-09-14 03:23 UTC
查看更新说明
What's Changed
- fix: 修复托盘恢复后缩略图工具栏消失 by @Holden-Cross in https://github.com/SPlayer-Dev/SPlayer-Next/pull/246
- fix(build): 修复 postinstall 脚本以确保 Electron 安装 by @laoshuikaixue in https://github.com/SPlayer-Dev/SPlayer-Next/pull/178
- fix: 修复 mpris 在多 artist 时仅传入单字符串 by @MoYingJi in https://github.com/SPlayer-Dev/SPlayer-Next/pull/219
- fix: Linux 下通过 RAII 守卫注入 PIPEWIRE_PROPS 确保 PipeWire 硬件时钟自适应采样率 by @scsfu in https://github.com/SPlayer-Dev/SPlayer-Next/pull/226
- refactor: 移除多余的侧边栏播放统计相关设置 by @PhantomPixel-0418 in https://github.com/SPlayer-Dev/SPlayer-Next/pull/267
New Contributors
- @scsfu made their first contribution in https://github.com/SPlayer-Dev/SPlayer-Next/pull/226
Full Changelog: https://github.com/SPlayer-Dev/SPlayer-Next/compare/v1.1.0...v1.2.0-alpha.1
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
English | 简体中文
Features
- 🎵 Broad format support — MP3, FLAC, WAV, AAC, OGG, APE, and more, decoded via FFmpeg
- 📝 Rich lyrics — LRC / QRC / YRC / TTML, word-by-word highlighting and translations, with desktop, dynamic-island, and taskbar lyric windows
- 🌐 Streaming servers — Subsonic / Navidrome / Jellyfin / Emby (multi-server, auto-connect)
- 🖥️ Cross-platform — Windows / macOS / Linux
- 🎚️ Audio spectrum — real-time FFT visualization
- 🏷️ Metadata editing — edit local track tags and cover art
- ⬇️ Downloads — built-in download manager
- 🎧 System media integration — Windows SMTC / Linux MPRIS / macOS Now Playing + Discord RPC
- ⚡ High-performance audio engine — FFmpeg + Rust
- 🎨 Adaptive theming — cover-based colors, Light / Dark / Auto
- 📈 Last.fm scrobbling
Development
Requirements
- Node.js >= 22
- pnpm >= 10
- Rust toolchain (required to build the native modules; see below)
Native Modules
Core performance features are powered by Rust-based native modules:
| Module | Description |
|---|---|
audio-engine | High-performance audio decoding (FFmpeg), playback, FFT spectrum, cover extraction |
media-ctrl | System media controls + Discord Rich Presence |
taskbar-lyric | Native Windows taskbar lyric rendering |
pnpm dev and pnpm build compile the native modules automatically. To skip them (e.g. when working only on the UI), set SKIP_NATIVE_BUILD=true.
Getting Started
# 1. Install dependencies
pnpm install
# 2. Start the dev app (builds native modules in debug, then launches Electron)
pnpm dev
Building
pnpm build # Full build: clean → native → typecheck → electron-vite
pnpm build:win # Package for Windows
pnpm build:mac # Package for macOS
pnpm build:linux # Package for Linux (AppImage / deb / rpm / tar.gz / pacman)
By default a build targets the current architecture only. Cross-compilation is not supported.
Other Scripts
pnpm typecheck # tsc + vue-tsc (node + web targets)
pnpm lint # ESLint
pnpm format # Prettier
pnpm build:native # Build the Rust native modules only (add `--dev` for debug)
Acknowledgements
Special thanks to the open-source projects that make SPlayer-Next possible:
- applemusic-like-lyrics — Apple Music-style lyrics display component library
- NeteaseCloudMusicApiEnhanced — NetEase Cloud Music API (backup + enhanced)
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
- Modification & distribution: any modification or distribution must also be released under AGPL-3.0, with the complete source code provided.
- Derivative works: must adopt AGPL-3.0 as well, and must retain this project's license and copyright notice in an appropriate place.
- Attribution: the original author and copyright information must be preserved. You may add your own notice for a derivative work, but you must not remove or alter the original.
- Commercial use: if used for sale or any other for-profit purpose, the source code and a link to the original project must be provided. Because this project relies on third-party services, commercial use may carry legal risk.
- No warranty: the software is provided "as is", without warranty of any kind, as described in the AGPL-3.0.
Disclaimer
This project is intended for personal learning and research only, and must not be used for commercial or unlawful purposes. Some features rely on third-party APIs; users are solely responsible for ensuring their use complies with the relevant laws, regulations, and service agreements. The authors accept no liability for any direct or indirect consequences arising from the use of this project.