本帖最后由 Beteix 于 2026-9-4 14:19 编辑
Apple Music Lyrics v0.4.0 - Windows Apple Music 桌面悬浮歌词
项目地址:https://github.com/BeteixZ/floating-lyrics-wam
一、为什么做这个
我平时主要在 Windows 上使用 Apple Music 听歌,一直比较喜欢 macOS 上 LyricsX 那种简单、不太打扰使用的桌面悬浮歌词。
Windows 上虽然也有一些歌词软件,但和 Apple Music 的配合多少有些不符合自己的使用习惯,所以就尝试用 C# / WPF 自己写了一个。
项目目前还在比较早期的阶段,版本是 v0.4.0,功能和细节都还在慢慢完善。如果正好也有类似需求,可以下载试试,也欢迎反馈遇到的问题。
二、目前已经实现的功能
1. 悬浮歌词
目前提供了几种显示方式:
- 单行歌词
- 双行歌词
- 带前后歌词预览的上下文模式
另外做了一个 Pure Mode(纯净模式),主要是尽量减少窗口本身的存在感,可以根据歌词内容调整显示区域,并支持透明背景、鼠标穿透等功能。
字体、字号、文字颜色、行距以及 Glow 效果等也可以自己调整。
2. Apple Music 播放状态获取
程序通过 Windows 的 SMTC(System Media Transport Controls) 获取 Apple Music 当前播放的歌曲信息和播放进度。
Apple Music Windows 客户端返回的部分元数据格式比较特殊,例如有时候歌手和专辑信息会合并在一起,因此程序里也做了一些针对性的简单处理。
这部分目前能满足我自己的日常使用,不过不同版本的 Apple Music 是否都会正常工作,还需要继续测试。
3. 歌词获取与匹配
目前主要有两种歌词来源。
本地歌词:
程序会尝试读取 Apple Music 在本地缓存的 TTML 时序歌词。因为这些歌词本身来自 Apple Music,所以如果能够找到对应缓存,一般会优先使用。
在匹配时除了歌曲时长之外,也会尽量结合歌曲信息和部分歌词内容进行判断,减少匹配到其他歌曲的情况。
在线歌词:
如果本地没有找到合适的歌词,可以尝试通过 LRCLIB 等公共歌词接口进行匹配。
在线匹配本身不可能做到百分之百准确,所以目前策略相对保守。如果遇到歌词匹配错误,也欢迎提交 Issue。
4. 歌词动画
歌词滚动和切换动画主要基于 WPF 自身的渲染机制实现,并尝试跟随系统渲染节奏进行更新。
播放状态检测以及本地歌词扫描也尽量避免过高的轮询频率,希望在日常挂后台使用时不要占用太多系统资源。
目前这部分我自己使用起来比较流畅,不过不同电脑、不同刷新率下的表现可能还会有差异。
5. 多显示器与 DPI
目前加入了 Per-Monitor V2 DPI 相关支持,主要解决不同缩放比例显示器之间拖动歌词窗口时的大小和清晰度问题。
我自己的使用环境下基本正常,不过多显示器组合比较多,如果遇到缩放、位置或者模糊问题,也欢迎反馈。
三、软件截图
四、运行环境与使用方法
系统要求
- Windows 10(19041 及以上)或 Windows 11,64 位
- 已安装 Apple Music for Windows
- 如果下载的是依赖框架的版本,需要安装对应的 .NET Desktop Runtime
- 提供独立打包版本(standalone.zip),则不需要单独安装运行库
简单使用
- 解压后运行
AppleMusicLyrics.App.exe。
- 打开 Apple Music 并播放歌曲。
- 如果能够找到对应歌词,悬浮窗口会自动显示并跟随播放进度。
- 右键任务栏托盘图标,可以进入设置、切换显示模式以及控制鼠标穿透。
- 未开启鼠标穿透时,可以直接拖动歌词区域调整位置。
五、下载与查毒
六、最后说明
这个项目主要是因为自己的使用需求做的,目前还是 v0.4.0,离“成熟软件”还有不少距离,一些边缘情况和交互细节肯定还有需要改进的地方。
程序免费使用,也没有广告。目前没有做用户数据收集之类的功能。
如果大家在使用过程中遇到歌词匹配、DPI、多显示器、Apple Music 版本兼容等问题,可以在 GitHub 提 Issue,也欢迎提供建议。
希望能解决一部分 Windows Apple Music 用户的悬浮歌词需求。
|