Skip to content

Releases: Xposed-Modules-Repo/io.github.andrealtb.lockscreenlyrics

v1.1.0

21 Jun 09:35

Choose a tag to compare

更新内容

  • 尝试蹬掉官方云控以及白名单

v1.7.1 - Keep-awake and LSP sync fixes

21 Jun 09:43

Choose a tag to compare

更新内容

  • 修复部分 Salt Player 构建未发布旧桌面歌词 action 时,ColorOS 锁屏歌词翻译按钮始终不出现的问题;模块现在会向媒体会话播放状态注入公开翻译开关 action。
  • 屏幕超时保活改为 15 秒 SCREEN_BRIGHT_WAKE_LOCK 租约,并在保活期间按 8 秒节奏续租与发送 userActivity,避免自然超时后进入降亮/AOD。
  • 保活证据改为以最近可见的官方锁屏歌词 TextView 为主,刚收到的歌词模型或官方歌词元数据只保留 3 秒过渡窗口,避免播放器异常退出或 OPlus Adapter 未清理时旧模型继续保活。
  • ACTION_USER_PRESENT 后增加 Keyguard 延迟复核:人脸识别成功但仍停留在锁屏歌词页时会恢复保活,真正离开锁屏后立即释放。
  • Release workflow 新增 LSPosed/Xposed 模块仓库同步步骤,发版 APK 会同步发布到 Xposed-Modules-Repo/io.github.andrealtb.lockscreenlyrics

验证

  • 本地已验证 testDebugUnitTestassembleDebuglintDebug
  • 继续保留既有歌词布局、逐字绘制、切歌淡入、翻译识别与翻译按钮恢复逻辑。

升级提示

安装后请在 LSPosed 中确认模块已勾选目标播放器与系统界面,然后重启播放器进程和系统界面;如果刚从旧版升级,建议直接重启设备以确保新版 SystemUI Hook 与屏幕超时策略完整生效。

v1.7.0 - Stable lyric sessions and lock-screen layout

21 Jun 09:36

Choose a tag to compare

更新内容

  • 新增播放器无关的歌词会话规约器,将异步歌词回调与稳定曲目信息绑定,避免切歌期间把新歌词写入上一首歌曲;同时兼容 Salt Player 的状态栏/车载歌词转发元数据。
  • SystemUI 私有媒体与歌词入口改用 DexKit 动态识别,并保留旧类名回退路径,降低 ColorOS/OPlus 更新或代码混淆带来的失效风险。
  • 在歌词进入 OPlus 官方列表前统一规范化:同一时间戳只保留主歌词 item,翻译与逐字信息继续保留在完整模型中;过滤制作信息、标题歌手行和零宽占位行。
  • 修复部分双语 LRC 被解析为“中文主句、英文翻译”的问题,并增加 Opalite 零宽占位行回归测试。
  • 改进重复歌词、首行预滚动和官方列表位置映射,使用时间戳、规范化文本与出现顺序共同定位当前句。
  • 锁屏歌词采用稳定的 80dp 物理槽位和 6dp 间距;短句视觉密度收紧,长句继续使用两行滑动窗口,当前进度行下移约 48dp
  • 移除按内容动态改变 item 几何的方案,避免每句播放完成时出现挤压、下跳或 RecyclerView 重新测量。
  • 改进 Seedling 播放位置同步、歌词界面可见性恢复、切歌淡入恢复和屏幕超时保活状态更新。
  • 新增适用于中文路径的本地 Gradle 构建脚本,并补充歌词会话、布局策略、LRC 规范化、曲目身份与双语解析测试。

已验证场景

  • Salt Player 不同歌曲连续切换、暂停恢复与进度跳转。
  • 连续短句、长句、翻译行、重复副歌和双语同时间戳歌词。
  • Opalite 中零宽占位行紧邻同时间戳中英歌词的解析场景。
  • 翻译按钮、锁屏超时保活与切歌歌词渐变在播放器重启后的正常恢复。

升级提示

安装后请在 LSPosed 中确认模块已勾选目标播放器与系统界面,然后重启播放器进程和系统界面;建议直接重启设备以确保新版 SystemUI Hook 与 DexKit 缓存完整生效。

v1.6.0 - ConePlayer and Salt DexKit adapters

21 Jun 09:36

Choose a tag to compare

更新内容

  • 新增 ConePlayer 适配,支持正式版与 Google Play 版,并已跨版本验证 1.1.3、1.1.4 和 1.1.5。
  • ConePlayer 歌词解析入口改由 DexKit 动态识别,不依赖混淆类名;兼容单参数与双参数解析方法。
  • 为未主动提供翻译动作的播放器补充翻译开关,同时保留收藏等已有自定义动作。
  • Salt Player 适配器迁移到 DexKit,通过歌词来源枚举、滚动状态枚举和结果类结构动态定位,已验证 12.0.0 正式版与 alpha07。
  • 调整 lyricInfo 数据优先级:播放器主动增强接入优先,其次使用模块捕获的完整歌词,播放器官方简单 lyricInfo 仅作为兜底。

作用域变化

  • 新增 ink.trantor.coneplayer
  • 新增 ink.trantor.coneplayer.gp
  • 保持 com.salt.musiccom.android.systemui 支持。

升级提示

安装后请在 LSPosed 中确认模块已勾选对应播放器与系统界面,然后重启相关播放器进程和系统界面;若首次安装,建议直接重启设备。

v1.5.2 · 重复歌词与翻译按钮修复

21 Jun 09:36

Choose a tag to compare

更新内容

  • 修复歌词正文存在重复句时,当前句可能无法进入逐字渲染的问题;现在会优先匹配实际播放位置对应的重复句。
  • 修复接入公开翻译开关协议的播放器中,ColorOS Rule0 误把“上一首”显示为翻译按钮的问题。
  • 将翻译动作提升到 Rule0 自定义动作首位,同时保留上一首、播放/暂停和下一首的原有位置与行为。
  • 增加重复歌词匹配和翻译动作排序的回归测试。

播放器接入

  • 继续使用公开动作 io.github.andrealtb.lockscreenlyrics.action.TOGGLE_TRANSLATION,协议本身没有变化。
  • 已接入该动作的播放器无需修改即可获得本次按钮排序修复。

升级提示

安装后请在 LSPosed 中确认模块作用域,并重启系统界面或设备,使新版 SystemUI Hook 生效。

v1.5.1 · 锁屏歌词排版与翻译交互优化

21 Jun 09:36

Choose a tag to compare

更新内容

  • 在保持歌词槽高固定的前提下,将官方歌词行间距收紧至 6dp,避免动态高度引起滚动抖动。
  • 无翻译歌词使用更大的 24sp 字号和均衡换行,按内容显示 2–3 行并保持垂直居中。
  • 过长翻译会随当前歌词进度横向滚动,减少文字超出屏幕边界的问题。
  • 翻译按钮仅在当前歌曲含可用翻译时显示。
  • 优化关闭翻译时从“2 行歌词 + 1 行翻译”过渡到“3 行歌词”的补行动画。

播放器接入

  • 新增公开动作 io.github.andrealtb.lockscreenlyrics.action.TOGGLE_TRANSLATION,主动接入 lyricInfo 的播放器可提供锁屏翻译开关。
  • 自动为外部歌词提供方配置 OPlus Rule0 自定义动作槽位。
  • 播放器包内存在 ic_translation 时优先使用;否则自动采用模块内置的透明背景、单色 Salt 风格翻译图标。
  • 中英文播放器接入文档已补充动作顺序、图标及生命周期要求。

升级提示

安装后请在 LSPosed 中确认模块作用域,并重启系统界面或设备。

v1.5.0

21 Jun 09:36

Choose a tag to compare

更新内容

  • 引入 Lyrics Core 解析适配层,增强多种时间轴歌词、逐字时序和同时间戳双语歌词兼容性。
  • 新增按曲目缓存与标准化身份匹配,兼容 [Explicit] / [Clean] 后缀及歌词早于媒体元数据到达的情况。
  • 完善锁屏逐字渲染:当前词辉光、焦点过渡、双语排版、长句窗口和可持久保存的翻译开关。
  • 优化切歌衔接,避免闪回官方歌词,并修复行重绑与淡入重复触发造成的 RenderNode 录制异常。
  • 加强首次沉浸界面进入、延迟歌词行绑定、屏幕保活和 OPlus 媒体策略兼容性。
  • 清理未启用的实验钩子与 fallback,减少 SystemUI 全局热路径开销。
  • 更新播放器接入文档:首次元数据应原子携带完整 lyricInfo,避免紧邻 extras 补丁被 OPlus 防抖丢弃。

验证

  • 真机回归测试通过
  • JUnit:7/7
  • Android Lint:通过
  • GitHub Debug 与签名 Release 构建:通过

构建版本:versionName 1.5.0 / versionCode 57

v1.4.1

21 Jun 09:35

Choose a tag to compare

更新内容

  • 提高逐字歌词对比度

v1.4.0

21 Jun 09:35

Choose a tag to compare

更新内容

  • 优化逐字歌词表现

v1.3.0

21 Jun 09:35

Choose a tag to compare

更新内容

  • 新增播放器主动接入协议:播放器可直接通过 MediaSession lyricInfo 发布歌词,模块会在 SystemUI 侧动态识别,无需加入包名适配器或 LSPosed 播放器作用域。
  • 支持 lyric 基础逐行歌词接入;可选 rawLyric 用于启用模块的逐字高亮渲染。
  • 保留 Salt Player 兼容适配器,其他新播放器推荐优先走 lyricInfo 接入协议。
  • 修复 Salt Player 12.0.0 新版本 hook 失效问题,兼容新版混淆类变化。
  • 优化 Salt 歌词抓取逻辑,自动识别构造器参数中的时间轴歌词,降低版本变动导致失效的概率。
  • 更新中英文接入文档,补充播放器接入方式和推荐发布时机。
  • 去除SystemUI侧包名白名单。[测试]