Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EchoMusic 任务栏歌词(Taskbar Lyrics)

融入 Windows 任务栏的歌词条插件,适用于 EchoMusic 桌面客户端。

实时显示当前歌词:逐字扫过、翻译/音译、旋转封面、悬停播放控制; 并且能避让任务栏原有图标、其他窗口全屏时自动淡出隐藏

platform plugin AI


⚠️ 关于本项目:代码完全由 AI 生成

  • 本仓库的全部代码——插件逻辑(JS)、任务栏监视器(C#)、样式、索引与文档——均由 AI 编程助手生成, 人类只负责提出需求、体验效果与反馈问题(开发环境:IDE 内与 CodeBuddy 结对迭代)。
  • 因此代码未经人工逐行审计,可能存在未知缺陷或不符合预期的实现细节。
  • 好消息是:所有源码都在仓库中,包括辅助进程的 C# 源码与编译命令。 你可以自行审计、修改、重新编译,或继续用 AI 改进它。
  • 建议:在了解这一点后再决定是否启用;如对辅助进程有顾虑,可自行用源码重新编译核对,或仅使用不依赖进程的功能。

功能

  • 实时歌词:任务栏空闲区域显示当前播放歌词,换行与演唱实时同步(内部锚定时钟 + 逐字时间轴)
  • 逐字扫过:按演唱进度从左到右逐字点亮,词内渐变过渡(优先逐字时间轴,无数据时按行时长估算)
  • 演唱跟随滚动:超长歌词横向滚动跟随实际演唱速度——主题色/灰色分界线到达窗口中间后固定在正中,直到滚到底;快唱快滚、暂停即静止
  • 翻译 / 音译:独立开关(翻译默认开、音译默认关),显示在原文下方一行,同样逐字扫过
  • 旋转封面:歌词左侧圆形封面,播放时自动旋转,描边颜色跟随主题色
  • 悬停控制:悬停隐藏歌词并浮现——喜欢(鲜红)/ 上一首 / 播放暂停 / 下一首,私人 FM 时额外提供「不喜欢」
  • 位置选择:居左 / 居中 / 居右三种对齐,自动计算任务栏空闲区域
  • 图标自动避让(本插件核心特性):实时监测托盘通知区与任务带矩形,托盘新增图标时窗口自动左移/收缩,不遮挡任务栏原有图标
  • 全屏自动隐藏:其他窗口进入全屏时自动淡出隐藏,退出后淡入恢复
  • 层级自愈:任务栏获得焦点压低窗口时,约 1 秒内以不抢焦点的方式自动抬升
  • 视觉融合:透明背景融入任务栏,悬停浮现毛玻璃底衬,颜色跟随 EchoMusic 主题色

与官方插件源中另一款「任务栏歌词」的区别

EchoMusic 官方插件源里已有一款同类插件 taskbar-lyric(作者 yaoyaoprincess)。 两者都是任务栏歌词浮窗,功能有重合(逐字歌词、悬停控制、喜欢、私人 FM 不喜欢、封面、翻译/音译), 以下是诚实的差异对照,按需选择即可:

维度 本插件 官方源 taskbar-lyric
任务栏图标避让 ✅ 原生辅助进程实时读取托盘区/任务带矩形,托盘新增图标时窗口自动让位,永不遮挡 ❌ 仅自动贴靠任务栏边缘 + 手动水平/垂直偏移滑块
全屏自动隐藏 ✅ 其他窗口全屏时自动淡出隐藏、退出淡入 ❌ 未提供
层级被任务栏压低 ✅ 自愈:不抢焦点地周期性重新抬升 心跳软恢复置顶(screen-saver 级一次置顶)
滚动规则 分界线钉在窗口中线,直到滚到底(随演唱快慢) 进度驱动 translateX 平滑滚动
副歌词逐字 ✅ 用 translatedCharacters / romanizedCharacters 时间轴逐字扫过 副行显示(README 未提及逐字)
窗口位置 左/中/右对齐自动排布,不支持拖拽 ✅ 自由拖拽 + 偏移微调 + 尺寸缩放
歌词正则过滤 ❌ 暂无 ✅ 可过滤制作/版权等无关行
外观自定义 跟随主题色(已播放色、封面描边),无独立调色 ✅ 字体、已播放色、未播放色、封面形状/位置/尺寸
实现方式 纯原生 JS(无构建、无依赖)+ 约 10 KB C# 辅助进程(源码随附) 纯插件 JS
代码来源 100% AI 生成(见上方声明) 未声明

怎么选:需要「不被任务栏图标压住 / 全屏自动隐藏 / 自动对齐」→ 用本插件; 需要「自由拖拽、调色、字体、歌词过滤」→ 用官方源的 taskbar-lyric

安装

方式一:添加插件源(推荐)

  1. EchoMusic →「插件管理」→「插件源」→ 添加:
    https://github.com/abailanli/echomusic-taskbar-lyrics
    
  2. 在列表中找到「任务栏歌词」,安装并启用
  3. 首次启用时,EchoMusic 会请求授权启动辅助进程 bin/TaskbarWatcher.exe (用于监测任务栏图标区域与前台全屏状态),允许后避让与全屏隐藏才会生效; 拒绝授权时插件仍可用,但只按屏幕估算位置显示

辅助进程源码:taskbar-lyrics/bin/TaskbarWatcher.cs, 约 10 KB,仅通过 Win32 API 读取窗口矩形与前台窗口状态,并 POST 到插件本机的 127.0.0.1 随机端口;不访问网络、不读取文件、不采集任何用户数据。

方式二:手动复制

  1. 下载仓库(Code → Download ZIP)并解压
  2. taskbar-lyrics 文件夹复制到 %APPDATA%\echo-music\plugins\
  3. 重启 EchoMusic,在「插件管理」中启用「任务栏歌词」

设置项

「插件管理 → 任务栏歌词 → 设置」:

选项 默认 说明
启用任务栏歌词 总开关
显示旋转封面 圆形封面,播放时旋转
逐字歌词 逐字扫过效果
显示翻译 原文下方显示翻译
显示音译 原文下方显示音译
对齐方式 居中 居左 / 居中 / 居右
窗口宽度 420px 200–900 px
歌词字号 14px 12–18 px

工作原理

  • 浮窗由 EchoMusic 插件浮窗机制创建(透明、置顶、不占任务栏入口、允许覆盖任务栏区域)
  • 歌词与播放状态来自 ctx.nowPlaying 快照。快照约 1 秒推送一次, 插件内部维护锚定时钟(参考宿主 useStableLyricIndex 的设计): 两次快照之间用 performance.now() 连续推算播放进度,偏差在 300ms 内不校正、 轻微滞后按 35% 比例校正、seek/换歌直接对齐——保证换行与逐字严格跟唱
  • 播放控制(喜欢 / 上一首 / 播放暂停 / 下一首)直接转发宿主播放器命令; 「不喜欢」通过 ctx.player.dislikePersonalFm() 执行(与私人 FM 页面行为一致)
  • bin/TaskbarWatcher.exe 每 400ms 采集一次任务栏几何信息(任务栏 / 托盘通知区 / 任务带矩形、DPI、前台全屏状态),仅在状态变化时上报给插件本地服务; 插件据此计算空闲区域并移动浮窗,托盘新增图标时窗口自动左移
  • DPI 换算:用「任务栏物理宽度 ÷ 渲染器屏幕宽度」实测比例自适应, 同时兼容 1:1 物理坐标与高分屏 DIP 两种运行环境

兼容性

  • EchoMusic >= 2.2.7
  • Windows 10 / 11(横向任务栏;竖向任务栏自动降级为屏幕底部显示)
  • 多显示器:跟随主任务栏

目录结构

.
├── echo-plugins.json          # 插件源索引(供 EchoMusic 插件管理读取)
├── README.md
├── LICENSE                    # MIT
└── taskbar-lyrics/            # 插件本体
    ├── manifest.json          # 插件清单(浮窗声明 + process/webServer 能力)
    ├── index.js               # 主入口:布局引擎、辅助进程管理、设置面板
    ├── taskbar.js             # 浮窗入口:歌词渲染、逐字/滚动、悬停控制
    ├── taskbar.css            # 浮窗样式
    ├── icon.svg               # 插件图标
    └── bin/
        ├── TaskbarWatcher.cs  # 监视器源码(C# 5,可审计/重编译)
        └── TaskbarWatcher.exe # 任务栏 / 全屏监视器(约 10 KB)

开发

重新编译监视器(无需 .NET SDK,使用 Windows 自带编译器):

& "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" `
  /nologo /target:exe /platform:anycpu /optimize+ `
  /out:"taskbar-lyrics\bin\TaskbarWatcher.exe" `
  "taskbar-lyrics\bin\TaskbarWatcher.cs"

修改辅助进程后,EchoMusic 会因可执行文件哈希变化重新请求授权(这是宿主的安全机制)。

插件开发文档见 EchoMusicPlugins/docs

许可证

MIT

About

EchoMusic 任务栏歌词插件:逐字跟唱、翻译/音译逐字、旋转封面;核心特性为任务栏托盘图标自动避让、全屏自动淡出隐藏与层级自愈。全部代码由 AI 生成。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages