Skip to content

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

v3.2.1

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 17 Jul 02:42

ColorOS Live Lyrics Bridge v3.2.1

v3.2.1 收束锁屏歌词的渲染职责与界面切换时序。亮屏阶段由 ColorOS SystemUI 独占当前行索引、seek 定位、平滑滚动、页面过渡和行缩放;模块只负责逐字、颜色、光晕、模糊、排版与受限槽位几何。该调整修复拖动进度后概率回落官方渲染、从解锁/指纹界面返回歌词页时非实时行延迟出现、居中或右对齐缩放错位,以及切歌模型替换时的歌词位移和生硬跳变,同时保持已验证的 AOD 首次 attach、prime 与低刷新路径不变。

亮屏渲染职责

  • 亮屏时完整放行官方 LyricsRecyclerView.setCurrentLyric 链路,不再由模块主动 prime、强制定位、停止滚动或修正 seek;官方当前索引 n 优先作为活动行依据。
  • AOD 或非交互屏幕继续保留既有一次性 prime 与定位兜底,不把亮屏改造扩展到已验证的 AOD 时序。
  • 非活动行缩放只写入官方缩放参数,由 SystemUI 状态机执行实际缩放与动画;移除 Canvas 第二次缩放,避免活动态、逐字态和页面交叉淡入不同步。
  • RecyclerView、页面 alpha、visibility、translation 和 ViewPropertyAnimator 始终归 SystemUI 所有,模块不再通过整体 View alpha 实现切歌过渡。

Seek 与界面切换

  • 同一曲目回拉或跳转进度时保留已经就绪的外部逐字模型,不再把播放位置跳变误当成需要清空自绘渲染器的曲目重启。
  • 瞬时找不到可见 RecyclerView 时增加受限过渡宽限;已存在歌词模型和界面切换信号时不会立即退出歌词模式。
  • 每个 RecyclerView 独立维护活动目标、绑定 epoch 和自定义帧状态;重复歌词使用 adapter position 消歧,唯一歌词不会因 RecyclerView pre-layout 的瞬时位置错位被拒绝。
  • RecyclerView attach、重新可见和模型提交会执行最多 6 帧/120ms 的纯像素 render pass。只有当前表面的可映射绑定行都已生成同一模型的自定义帧后才提前结束 handoff,避免某一帧回落官方字体或只显示实时行。
  • 当缓存行都属于已隐藏表面时,会从当前已附着 RecyclerView 重新发现候选 TextView;恢复过程只更新绘制引用和 invalidate,不触碰索引、滚动或槽位坐标。

对齐、缩放与切歌过渡

  • 左对齐、居中和右对齐均按实际内容区域计算官方缩放 pivot;首次布局前使用 measured size,尺寸变化后重新校正,修复居中视觉漂移和右对齐放大方向错误。
  • 新歌词模型发布后,亮屏绘制会等待内容决定的槽位高度完成一次几何提交,避免先用上一首歌的行高绘制新歌词后再次位移。
  • 几何提交完成后仅对模块自绘歌词像素执行一次轻量淡入,不修改 RecyclerView alpha;“关闭动效”和 AOD 路径不执行该淡入。
  • 字号、字重、对齐和模型替换只清理必要的绘制、换行、光晕与绑定缓存,不接管官方滚动事务。

诊断与测试

  • 增加亮屏/AOD 渲染所有权快照,可核对 owner、官方索引、可见范围、子项数量和目标中心;亮屏应显示 owner=systemui
  • 新增同曲 seek 保留、瞬时 surface miss、官方索引优先、亮屏/AOD 定位职责、缩放钳制、几何提交屏障、动效关闭和首次布局 pivot 回归测试。
  • 实机已覆盖进度拖动、解锁/指纹界面往返、居中/右对齐、75%/90% 非活动缩放、连续切歌和 AOD 往返;未再观察到官方渲染回落、非实时行延迟、视觉对齐错乱或歌词行抖动。
  • testDebugUnitTestassembleDebuglintDebug、LSPosed metadata 校验和 git diff --check 均通过;Lint 无错误,仅保留既有的版本兼容、依赖、资源反射和一次性 DexKitBridge 提示。

LyricProvider

  • LyricProvider 协议和代码保持不变,已安装 v3.1.0/v3.2.0 Provider 的用户无需更新;Release 继续附带全部 Provider APK 与合集,便于首次安装或补装。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.2.1.apk
  • LyricProvider-QQMusic-v3.2.1.apk
  • LyricProvider-163Music-v3.2.1.apk
  • LyricProvider-AppleMusic-v3.2.1.apk
  • LyricProvider-Poweramp-v3.2.1.apk
  • LyricProvider-Spotify-v3.2.1.apk
  • LyricProvider-QiShui-v3.2.1.apk
  • LyricProvider-KuGou-v3.2.1.apk
  • LyricProvider-v3.2.1.zip

Donate

WeChat and Alipay donation QR code

v3.2.0

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 16 Jul 17:54

ColorOS Live Lyrics Bridge v3.2.0

v3.2.0 在 v3.1.0 自定义能力的基础上完成设置链路、解析稳定性与渲染性能收束。本版本修复设置链路可能覆盖外观配置、极近时间戳的歌词开头信息可能干扰逐字行匹配,以及自绘歌词每帧触发 SystemUI 全量测量与布局的问题;不改变既有 RecyclerView prime、滚动、槽位动画或 AOD 低刷新时序。

设置链路热修

  • 播放器翻译设置只更新全局翻译默认值、播放器默认值和清除记忆请求,不再携带并回写可能过期的完整外观快照,避免居中、字号、行距、透明度和光晕等设置被意外恢复。
  • 修复设置页 Spinner 初始化回调可能被误判为用户操作的问题,避免进入页面或重新绑定预设时意外应用“默认”预设。
  • 修复设置页首次绑定发生在滑块监听器安装之前时,数值文字仍停留在控件下限的问题;保存后重新进入页面,透明度、模糊、缩放、光晕、字号、翻译比例和行距的文字会与滑块及实际配置一致。
  • 页面因系统重建时会保存并恢复尚未提交的配置草稿,减少旋转、窗口重建等场景下的编辑内容丢失。
  • 设置广播增加单调递增 revision、来源标识和受保护的 ResultReceiver 回执;设置页会区分“已保存”“SystemUI 已应用”“SystemUI 拒绝”和“未收到确认”。
  • Logcat 增加 settings-sendsettings-receivesettings-appliedsettings-acksettings-rejected 事件,并记录 revision、来源和最终对齐值,便于诊断偶发的设置未生效或对齐回退。
  • 修正悬浮预览相对标题栏边界的坐标换算,优先使用实际 ActionBar 容器底边,避免预览框贴到屏幕顶端或遮挡标题栏。
  • 设置页滑块改用不注册系统手势排除区的轻量控件,避免长页面滚动时每帧为多个原生滑块反复计算手势排除区与避让区。
  • 设置页窗口稳定请求最高 120 Hz,并关闭独立的触摸升频投票;Android 15 及以上启用帧率省电平衡提示,使 LTPO 面板仍可在内容静止时向下自适应,避免滚动期间在 60/120 Hz 间反复切换造成 Buffer Stuffing。
  • 合并悬浮预览的位置更新到下一帧执行,复用坐标缓存,并跳过没有变化的位移和阴影高度写入;滚动期间将整块预览临时缓存为硬件层,停止 160ms 后释放,降低主线程与 RenderThread 的重复绘制,同时不长期占用额外显存。

歌词解析与显示修复

  • 修复极近时间戳的开头信息被 Accompanist 误合并为双语歌词的问题。例如相邻的“作词”“作曲”和第一句双语歌词会重新保持各自时间轴行,避免后续 RecyclerView 索引整体错位。
  • 解决关闭所有可选歌词开头清理规则后,部分歌词可能出现逐字进度中途消失、相邻同文歌词同时高亮,以及制作信息异常放大的问题。
  • 修复仅拆分能够确认吸收了非歌词信息的解析行;其余歌词继续保留上游逐字区间和翻译匹配结果,避免对正常的轻微错位双语歌词造成影响。
  • 增加受频率限制的官方绘制回退诊断,记录模型缺失、行匹配失败和绘制异常,同时继续将 Hook 范围限制在 LyricsRecyclerView 内。

SystemUI 渲染性能热修

  • 将官方歌词 TextView 的字体内边距和最小高度准备改为幂等操作:属性已经满足要求时不再重复调用 setter。
  • 修复自绘路径每帧调用 TextView.setMinHeight(0) 并触发 requestLayout(),导致整个锁屏通知面板几乎每帧重新 measure/layout 的问题。
  • 保留逐字进度、光晕、模糊和滚动的原有刷新节奏;不通过降帧隐藏 CPU 开销,也不修改翻译展开/收起的真实槽位动画。
  • 不移动或延迟 LyricsRecyclerView 首次 attach、prime、setCurrentLyric、可见行高度同步及 AOD 低刷新路径。

刷新率与媒体封面

  • 将“最大动态刷新率”更名为“歌词刷新上限”,并明确该设置只限制歌词内容重绘,不会强制 ColorOS 将锁屏物理刷新率升至 90/120 Hz;系统降至 60 Hz 时歌词也会随之降至 60 帧。
  • 固定 60/90/120 Hz 改为按显示帧时间做截止时间节拍。修复 90 Hz 在 120 Hz 屏幕上因毫秒取整而实际退化为逐 VSync 刷新的问题,同时不会在物理屏幕已经降频时虚构额外帧。
  • 修复 Salt Player 冷启动首曲歌词结果回写与异步封面加载竞争的问题:歌词元数据只进行一次延迟发布,并在发布前重新读取当前 MediaSession 元数据和核对曲目身份,不再用较早保存的元数据快照覆盖刚更新的封面。
  • 歌词元数据发布日志增加位图尺寸、generation、对象标识和 URI 摘要,后续若仍出现播放器自身上报旧封面的情况,可以区分播放器源数据与 SystemUI 缓存问题;不会复制、清空或修改封面像素。

修复测试结果

同一设备、模块开启并使用 Salt Player 锁屏歌词的 60 秒 Perfetto 前后对比结果如下:

指标 v3.1.0 v3.2.0 构建 变化
SystemUI 总 CPU 57.63% 45.33% 下降约 21%
SystemUI 主线程 CPU 26.48% 14.83% 下降约 44%
RenderThread CPU 24.89% 24.12% 基本不变
measure 3616 次/分钟 36 次/分钟 减少约 99%
layout 3616 次/分钟 36 次/分钟 减少约 99%
  • 官方锁屏歌词参考样本的 SystemUI 主线程为 14.56%、RenderThread 为 24.45%、measure/layout 各 99 次/分钟;优化后主线程开销已接近官方参考路径。官方样本为维持亮屏包含周期唤醒命令,因此只作为参考,不作为严格的整机耗电等价对照。
  • 修复前后均保持约 60 帧/秒的歌词绘制采样,性能下降并非通过关闭逐字刷新或降低亮屏歌词帧率取得。
  • 修复后 Perfetto 有效时长为 59.991 秒,未发现跟踪数据丢失或非信息级 trace stats 错误。
  • testDebugUnitTestassembleDebuglintDebuggit diff --check 均通过;Lint 无错误,仅保留既有的兼容性、依赖版本、资源反射和一次性 DexKitBridge 解析提示。
  • 新增配置 round-trip、播放器翻译不得覆盖外观、设置 revision 单调性、悬浮预览坐标和极近时间戳开头信息解析回归测试。
  • 新增 60/90/120 Hz 截止时间节拍单测;设置页 120 Hz 连续滚动 CPU 通常约 30%、峰值约 40%,与系统设置页同类滚动负载接近,停止滚动后正确回落到接近 0%,未发现持续后台占用。
  • 冷启动首曲封面发布增加当前曲目身份复核与诊断信息;播放器强制停止后的首曲概率场景仍建议后续持续观察。

LyricProvider

  • LyricProvider 协议和代码保持不变,已安装 v3.1.0 Provider 的用户无需更新;本次问题均在 Bridge 设置、解析和 SystemUI 绘制侧修复。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.2.0.apk
  • LyricProvider-QQMusic-v3.2.0.apk
  • LyricProvider-163Music-v3.2.0.apk
  • LyricProvider-AppleMusic-v3.2.0.apk
  • LyricProvider-Poweramp-v3.2.0.apk
  • LyricProvider-Spotify-v3.2.0.apk
  • LyricProvider-QiShui-v3.2.0.apk
  • LyricProvider-KuGou-v3.2.0.apk
  • LyricProvider-v3.2.0.zip

Donate

WeChat and Alipay donation QR code

v3.1.0

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 16 Jul 03:00

ColorOS Live Lyrics Bridge v3.1.0

v3.1.0 完成歌词设置、渲染和内容清理的系统化升级。本版本开放安全的外观与排版自定义,同时把配置、预览、广播、缓存和 SystemUI 绘制收束到同一套版本化模型,并保持已验证的 AOD 首次挂载与低刷新路径。

歌词外观与预览

  • 新增“默认、柔和、醒目、极简”四种外观预设;手动修改预设所管理的字段后自动显示为“自定义”。
  • 开放非活动歌词透明度、模糊、非活动缩放、光晕强度与半径、主色/光晕色、动效等级、长歌词纵向浏览和长翻译横向滚动。
  • 开放主歌词字号、翻译字号比例、字重、左对齐/居中/右对齐和 -5–20dp 歌词行间距;所有预设的默认行距为 0dp
  • 最大动态刷新率可跟随屏幕或限制为设备支持的 60/90/120 Hz,仅限制歌词内容重绘,不强制改变屏幕刷新率;AOD 继续使用低刷新路径。
  • 设置页预览显示当前行及后续两行的主歌词与翻译,复用锁屏槽高、排版、行距、缩放和对齐策略;滚动后会平滑吸附在标题栏下方,便于边调边看。
  • “恢复默认外观”只重置外观字段,不修改屏幕保活、刷新率、播放器翻译默认值或歌词内容清理策略。

稳定自适应布局

  • 歌词物理槽位按换行、翻译和排版配置稳定计算,保留最小高度、字体上下边界与底部安全空间,修复 g 等下伸字符的轻微裁剪。
  • 主歌词仍最多同时显示两行;超过两行时保留完整换行结果,并在固定两行视窗内按歌词进度平滑展示后续内容,避免复杂歌词忽大忽小。
  • 翻译展开/收起重新压缩 RecyclerView 行高,并以统一动画进度同步所有可见行和当前行锚点,减少突跳和掉帧;AOD 只应用一次终态高度。
  • 修正居中与右对齐时的缩放原点、视觉中心和长文本浏览方向;设置项使用“左对齐/居中/右对齐”可读名称。
  • 同步 AOD/亮屏切换时的光晕与逐字效果,并统一 AOD 当前主歌词和翻译行亮度。

播放器翻译与歌词开头清理

  • “播放器翻译设置”迁移到“兼容与屏幕”中的独立页面,可按播放器设置默认翻译并单独清除记忆;Salt Player 与 ConePlayer 始终显示,Provider 播放器会根据对应 APK 是否安装自动灰置。
  • 新增“歌词开头信息清理”二级页面,以开关提供常见版权声明、制作/乐器信息和“歌名 - 歌手”开头规则;影响解析正确性的保护规则固定保留。
  • 可一次性读取当前歌曲前 80 个时间轴行,直接选择第一句正式歌词;逐曲修正绑定原始 trackKey 与行指纹,不依赖易变化的行号。
  • 可从未识别行中选择安全的前缀或整行格式供其他歌曲复用,无需编写正则或 DSL;规则受开头 30 秒、32 个候选、32 条规则和 4 KiB 快照等边界限制。
  • 移除原计划中的展示元数据 DSL;清理只影响模块生成的歌词显示,不修改 MediaSession、Provider 原始数据、曲目身份或歌词时间轴。

配置、日志与解析

  • 引入不可变、版本化歌词 UI 配置及统一校验、迁移和 SharedPreferences 仓库;设置采用“保存并应用”,保存前只更新预览。
  • 设置广播从外部歌词 Receiver 中拆分,并使用 signature 权限保护;未知未来 schema 会被拒绝,缺失字段保持当前配置。
  • Accompanist Lyrics Core 从 0.4.5 升级至 0.4.7,补充 YRC 逐字、LRC、TTML、翻译和逐字区间回归覆盖。
  • Logcat 统一为 [进程][模块][事件] message | key=value,保留独立解析 Tag、长消息分块、控制字符转义和 LSPosed 必要错误镜像。
  • Java 源码和构建显式使用 UTF-8;可见 Unicode 转义改为可读文字,不可见字符使用具名 code-point 常量。

设置与稳定性修复

  • 修复设置二级页顶部被系统栏遮挡、输入框被输入法遮挡、自动填充干扰、选项文字未对齐和滚动预览闪退。
  • “歌词显示时保持屏幕”更名为“歌词显示时保持屏幕点亮”,留空的自定义秒数继续表示默认常亮行为。
  • 恢复 LSPosed 管理器中的模块图标占位,并保持应用图标、备份规则和 WindowInsets 配置完整。
  • 保持 compileSdk/targetSdk 35;Android 36 版本提示作为独立兼容性工作,不使用全局 Lint 基线隐藏。

LyricProvider

  • QQ 音乐、网易云音乐、Spotify、汽水音乐和 Poweramp Provider 不再提前删除开头制作信息,只过滤空行并排序,将显示级清理统一交给 Bridge/SystemUI。
  • Poweramp 的普通歌词与行内括号歌词路径均保留带时间轴的开头信息。
  • 酷狗 Provider 加强车载歌词展示元数据与乱码制作信息识别,避免展示文本被误当成稳定曲目身份。
  • 更新受影响 Provider 内部版本,旧版仍可提供歌词,但需要更新后才能完整使用可配置的开头信息清理。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.1.0.apk
  • LyricProvider-QQMusic-v3.1.0.apk
  • LyricProvider-163Music-v3.1.0.apk
  • LyricProvider-AppleMusic-v3.1.0.apk
  • LyricProvider-Poweramp-v3.1.0.apk
  • LyricProvider-Spotify-v3.1.0.apk
  • LyricProvider-QiShui-v3.1.0.apk
  • LyricProvider-KuGou-v3.1.0.apk
  • LyricProvider-v3.1.0.zip

Donate

WeChat and Alipay donation QR code

v3.0.4

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 12 Jul 23:25

ColorOS Live Lyrics Bridge v3.0.4

v3.0.4 完善了关闭“普通逐行伪逐字”后的长歌词显示:普通逐行歌词换行超过两行时,不再固定截断在前两行,而是在保持两行视窗和既有 RecyclerView 几何不变的前提下,随整句播放进度平滑展示后续内容。

Bridge 改进

  • 普通逐行歌词关闭伪逐字后,三行正文使用固定两行裁剪视窗,从第 1、2 行平滑移动至第 2、3 行。
  • 被动滚动完全由当前歌词的行时间轴驱动,不额外模拟字级时间,也不绘制伪逐字高亮。
  • 滚动采用 21.5%~78.5% 的有效进度区间和五次平滑插值,起步、停止更柔和,中段移动更自然。
  • 暂停时滚动位置冻结,恢复后继续;拖动播放进度时直接落到对应位置,避免独立动画时钟造成漂移。
  • 仅在符合条件的当前长歌词需要移动时保持显示帧率刷新;普通短句和静止状态继续走较低刷新频率。
  • 重复或回收中的非当前歌词 holder 不会覆盖当前行的刷新判断。

稳定性边界

  • 不改变 LyricsRecyclerView 的滚动位置、item 定位、prime 或 setCurrentLyric 时机。
  • 不修改普通 SystemUI TextView;裁剪和自绘仍只作用于歌词 RecyclerView 内部。
  • AOD 继续沿用已验证的低帧率与首次 attach 时序,不启用本次连续被动滚动。

LyricProvider

  • LyricProvider 代码与内部版本保持不变,已安装的 Provider 无需更新;Release 仍附带各播放器 Provider APK 和合集,便于首次安装或补装。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.0.4.apk
  • LyricProvider-QQMusic-v3.0.4.apk
  • LyricProvider-163Music-v3.0.4.apk
  • LyricProvider-AppleMusic-v3.0.4.apk
  • LyricProvider-Poweramp-v3.0.4.apk
  • LyricProvider-Spotify-v3.0.4.apk
  • LyricProvider-QiShui-v3.0.4.apk
  • LyricProvider-KuGou-v3.0.4.apk
  • LyricProvider-v3.0.4.zip

Donate

WeChat and Alipay donation QR code

v3.0.3

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 12 Jul 10:35

ColorOS Live Lyrics Bridge v3.0.3

v3.0.3 是针对部分 ColorOS 16 / SystemUI 版本启动崩溃的兼容性修复版本,重点解决启用模块后冷启动卡在锁屏界面、SystemUI 主线程 ANR 并进入 LSPosed 安全模式的问题。

Bridge 修复

  • 移除全局 ClassLoader.loadClass(String, boolean) Hook,避免在 SystemUI 主线程拦截所有类加载并引发高负载或 ANR。
  • 改为仅 Hook OPlus OPlusPluginClassLoader 构造过程,在实际歌词插件 ClassLoader 上安装 LyricsRecyclerView 相关 Hook,并保留首次 View attach 的兜底路径。
  • 防止可选的 RecyclerView 通知保护方法缺失时重复安装 setCurrentLyric Hook,降低不同 SystemUI 变体上的重复拦截风险。
  • 将歌词 RecyclerView 匹配缓存中的 View 引用改为弱引用,避免静态缓存意外持有 SystemUI View 层级。
  • 收紧 LyricsRecyclerView 类型判断,避免误匹配普通 SystemUI View;AOD 首次 attach、透明、位移或 0x0 状态的既有时序保持不变。

兼容性验证

  • 在 OnePlus PJZ110、Android 16、SystemUI 16.0.9.401 测试机上完成冷启动与多轮 AOD/亮屏切换测试。
  • 测试日志中未出现 SystemUI ANR、崩溃或 LSPosed 安全模式回退;歌词索引和 AOD 切换保持正常。

LyricProvider

  • LyricProvider 代码与内部版本保持不变,已安装的 Provider 无需更新;Release 仍附带各播放器 Provider APK 和合集,便于首次安装或补装。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.0.3.apk
  • LyricProvider-QQMusic-v3.0.3.apk
  • LyricProvider-163Music-v3.0.3.apk
  • LyricProvider-AppleMusic-v3.0.3.apk
  • LyricProvider-Poweramp-v3.0.3.apk
  • LyricProvider-Spotify-v3.0.3.apk
  • LyricProvider-QiShui-v3.0.3.apk
  • LyricProvider-KuGou-v3.0.3.apk
  • LyricProvider-v3.0.3.zip

Donate

WeChat and Alipay donation QR code

v3.0.2

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 10 Jul 18:35

ColorOS Live Lyrics Bridge v3.0.2

v3.0.2 是 v3.0.1 的歌词交接与渲染细节修复版本,重点处理 Apple Music 自动切歌偶发“暂无歌词”,以及普通逐行歌词启用伪逐字时末句进度过快完成的问题。

Bridge 修复

  • Apple Music 外部歌词交接改为优先跟随 Bridge MediaSession 的最新曲目元数据,避免队列预加载或旧的播放器回调把 Bridge 重新指向上一首/下一首歌曲。
  • Apple Music 歌词到达后增加受限的 SystemUI 元数据刷新重试,并过滤同一交接窗口内会把旧歌词重新推进来的陈旧播放状态,降低自动切歌后短暂显示“暂无歌词”的概率。
  • 普通逐行歌词的伪逐字模式不再给最后一句使用固定的 600ms 结束时间;会根据前面歌词节奏和末句文本长度估算显示时长,并限制在合理范围内。真实逐字时间轴和显式结束时间不受影响。
  • 保持 v3.0.1 已验证的 AOD、锁屏岛切换、RecyclerView 通知保护和 SystemUI 性能优化行为不变。

LyricProvider 修复

  • Apple Music Provider:MediaSession 元数据作为 Bridge 曲目身份的权威来源,避免 PlaybackItem 队列预加载覆盖当前曲目,并确保已构建的歌词发送到正确的 Bridge generation。
  • Poweramp Provider:兼容不同 Poweramp 版本中以 IntLong 提供的歌词时长字段。
  • 本次随发布的 7 个 Bridge Provider 均递增内部 versionCodeversionName,安装过旧 Provider 的用户需要更新对应 APK。

Provider 版本

  • QQ Music Provider:1.1.1 / versionCode 6
  • NetEase Cloud Music Provider:1.1.1 / versionCode 11
  • Apple Music Provider:1.1.1 / versionCode 9
  • Spotify Provider:1.1.1 / versionCode 7,当前仍仅支持原文歌词,不支持翻译
  • QiShui Music Provider:1.2.1 / versionCode 4
  • KuGou Music Provider:1.1.4 / versionCode 9
  • Poweramp Provider:1.0.11 / versionCode 8

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.0.2.apk
  • LyricProvider-QQMusic-v3.0.2.apk
  • LyricProvider-163Music-v3.0.2.apk
  • LyricProvider-AppleMusic-v3.0.2.apk
  • LyricProvider-Poweramp-v3.0.2.apk
  • LyricProvider-Spotify-v3.0.2.apk
  • LyricProvider-QiShui-v3.0.2.apk
  • LyricProvider-KuGou-v3.0.2.apk
  • LyricProvider-v3.0.2.zip

Donate

WeChat and Alipay donation QR code

v3.0.1

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 10 Jul 14:17

ColorOS Live Lyrics Bridge v3.0.1

v3.0.1 是基于 v3.0.0 的性能与渲染稳定性维护版本,重点降低未使用锁屏歌词时对 SystemUI 的后台开销,并继续收紧只应作用于歌词界面的保护逻辑。

SystemUI 性能优化

  • 歌词区域隐藏后立即停止逐帧刷新、可见性恢复与延迟回调;不会因已隐藏的歌词界面继续保留刷新循环。
  • Provider 广播在主线程只做轻量校验和快照,歌词解析转入有界后台执行器,降低切歌和媒体状态变化时的主线程压力。
  • 歌词局部 View Hook 在无歌词模型、非歌词视图或无活动歌词界面时更早返回,并避免普通路径的临时对象分配与重复祖先查找。
  • 移除全局日志 Hook,收紧 OPlus 白名单绕过范围;RecyclerView 通知保护仅作用于官方歌词 Adapter,不再触及普通 SystemUI 列表。

渲染与稳定性

  • 修复锁屏岛界面切换时偶发回落到官方大字歌词、短暂闪烁后才恢复模块渲染的问题;过渡期间使用有时限的歌词局部恢复机制,不保留后台刷新。
  • Apple Music 在同一播放会话切歌时,允许已确认的最新 generation 歌词绕过陈旧的 SystemUI 曲目标题完成晋升,减少歌词已到达但仍显示“暂无歌词”的情况。
  • 保持 v3.0.0 已验证的亮屏到 AOD 歌词首帧与布局时序,不引入新的 AOD 可见性、透明度或尺寸门控。

日志与安装

  • 发布版默认只保留必要警告和错误;详细歌词诊断仍需显式开启对应 debug tag。
  • Bridge 内部版本更新为 3.0.1 / versionCode 115。LyricProvider 内部版本未变化,已安装的 Provider 无需重装;Release 仍附带全部 Provider APK 与合集,便于首次安装或补装。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.0.1.apk
  • LyricProvider-QQMusic-v3.0.1.apk
  • LyricProvider-163Music-v3.0.1.apk
  • LyricProvider-AppleMusic-v3.0.1.apk
  • LyricProvider-Poweramp-v3.0.1.apk
  • LyricProvider-Spotify-v3.0.1.apk
  • LyricProvider-QiShui-v3.0.1.apk
  • LyricProvider-KuGou-v3.0.1.apk
  • LyricProvider-v3.0.1.zip

Donate

WeChat and Alipay donation QR code

v3.0.0

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 10 Jul 07:05

ColorOS Live Lyrics Bridge v3.0.0

这是一次面向锁屏歌词完整链路的大版本更新。相较 v2.7.2,本版重构了 Bridge 与各 LyricProvider 的切歌、歌词到达和播放状态交接,修复多类“暂无歌词”、旧歌词残留、逐字进度错位和 AOD 切换抖动问题,为偶发 SystemUI 崩溃增加定向保护,并进一步降低 SystemUI 绘制热路径与调试日志的开销。

重大更新

  • 统一 QQ 音乐、网易云音乐、Apple Music、Poweramp、Spotify、汽水音乐和酷狗音乐 Provider 的 Bridge 事件模型:使用曲目 generation 区分 trackChangedlyricReady,对需要外部状态的 Provider 继续区分 playbackState,丢弃异步返回的旧曲歌词,并对重复 payload 和高频播放状态广播去重。
  • 重做外部歌词切歌交接:在新曲歌词尚未到达、播放器 metadata 短暂抖动或 SystemUI RecyclerView 正在换行绑定时,保持曲目身份和渲染状态一致,减少“暂无歌词”、上一首歌词闪回、边界外首句和淡化未完成等问题。
  • 稳定亮屏到 AOD 的歌词绘制:沿用 SystemUI 官方首帧 prime 和布局时序,降低 AOD 低帧率模式下的连续刷新与复杂进度效果,修复靠近绘制区域下边界的歌词异常抖动。
  • 新增严格限定在 LyricsRecyclerView 的 RecyclerView Adapter 通知保护,仅拦截布局计算期间的对应 IllegalStateException,降低切歌和状态变化时 SystemUI 偶发崩溃风险。

播放器修复

  • ConePlayer:兼容“媒体通知(车载蓝牙)歌词”复用媒体元数据的情况,避免临时歌词行被误判为切歌后令锁屏显示“暂无歌词”,同时保留原有车载歌词功能。
  • Spotify:改善首次歌词到达等待、快速切歌、播放进度接续和无歌词曲目处理;当前仍仅支持原文歌词,暂不支持翻译。
  • QQ 音乐:修复切歌后旧歌词偶发重复、首句越界,以及快速切歌后歌词淡化或渲染状态未完整恢复的问题。
  • 网易云音乐:补齐曲目 generation、播放状态和旧异步结果过滤,降低快速切歌时的错绑风险。
  • Apple Music:修复暂停时歌词区域闪现、部分歌曲长时间“暂无歌词”、显示文本与逐字数据不一致及逐字进度错位;增加匹配 PlaybackItem 的请求重试,并兼容交叉渐入渐出期间的曲目交接。
  • Poweramp:补齐显式 trackChangedlyricReady 事件并复用一次生成的歌词 payload;播放状态保持由原生 MediaSession 单路提供;规范化方括号行内逐字时间戳,兼容 durMsIntLong 提供的不同 Poweramp 版本,并在官方索引短暂落后时让放大行回跟实际进度,避免拖动或恢复播放后歌词越界、滚动行与高亮行错位。
  • 汽水音乐:优化歌词对象、缓存和播放状态的接管顺序,修复部分有歌词歌曲仍显示“暂无歌词”,并让切歌交接更自然。
  • 酷狗音乐/概念版:过滤缺少有效曲目身份的早期播放状态,保留稳定 generation 与歌词 payload,降低启动和切歌竞态。

歌词解析

  • 修复部分增强 LRC 的非递增逐字时间戳被降级后误挂到上一句翻译的问题,避免主歌词重复显示或翻译错位。
  • 修复英文短句 You you 与中文翻译 你 你 同时间戳时被误判为拼音、使翻译行成为主歌词的问题。

性能与日志

  • 减少 SystemUI TextView.onDraw 热路径中的重复父级查找、可见区域计算、时间读取和临时对象分配;相同歌词行的最近绘制缓存改为原位刷新。
  • 普通逐行歌词在不需要逐帧进度效果时自动降低刷新频率;AOD 模式继续使用更保守的刷新节奏。
  • Official lyric row scale 仅记录目标状态变化,不再在动画的每一帧重复输出;详细诊断仍可通过对应 debug tag 显式开启。
  • QQ、网易云、Apple Music、Poweramp、Spotify、汽水和酷狗 Provider 的 Bridge 成功/跳过日志统一受 debug tag 控制,发布版默认只保留必要警告和错误;Poweramp 的内部反射探针仅在显式开启 debug tag 后安装。

Provider 版本

  • QQ Music Provider:1.1.0 / versionCode 5
  • NetEase Cloud Music Provider:1.1.0 / versionCode 10
  • Apple Music Provider:1.1.0 / versionCode 8
  • Spotify Provider:1.1.0 / versionCode 6
  • QiShui Music Provider:1.2.0 / versionCode 3
  • KuGou Music Provider:1.1.3 / versionCode 8
  • Poweramp Provider:1.0.10 / versionCode 7

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v3.0.0.apk
  • LyricProvider-QQMusic-v3.0.0.apk
  • LyricProvider-163Music-v3.0.0.apk
  • LyricProvider-AppleMusic-v3.0.0.apk
  • LyricProvider-Poweramp-v3.0.0.apk
  • LyricProvider-Spotify-v3.0.0.apk
  • LyricProvider-QiShui-v3.0.0.apk
  • LyricProvider-KuGou-v3.0.0.apk
  • LyricProvider-v3.0.0.zip

Donate

WeChat and Alipay donation QR code

v2.7.2

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 08 Jul 17:46

ColorOS Live Lyrics Bridge v2.7.2

这一版继续收紧外部 Provider 的切歌接管和歌词来源兜底,重点改善汽水音乐、酷狗音乐/概念版在实际锁屏场景里的稳定性,同时保持 Bridge 渲染链路的发布版日志更安静。

新增

  • 新增汽水音乐官方运行时歌词对象兜底:本地网络缓存和数据库还没命中时,可直接接管播放器当前歌词对象,降低第二次打开后一直“暂无歌词”的概率。
  • 新增汽水音乐数据库表发现和 NetCacheLoader 递归查找能力,兼容不同安装来源或缓存目录结构差异。
  • 新增汽水音乐中文翻译语言键兜底,优先识别 ZH-HANSZH-CN 等翻译字段。

优化

  • 优化汽水 Provider 切歌重试、缺失缓存和 Bridge 发送链路,减少歌词 pending 后长期不落地的情况。
  • 优化酷狗 Provider:原版酷狗与概念版酷狗分离处理歌词和封面,概念版不再覆盖系统封面;歌词发送增加同曲目去重和稳定元数据保留。
  • 优化 Bridge 对汽水音乐和酷狗概念版的外部歌词接管:短暂 metadata/lyricInfo 抖动时保留稳定歌词表面,降低切换时闪回官方渲染或非歌词区域残留。
  • 优化翻译按钮识别和可见性跟随,避免歌词出现后按钮视图被回收或隐藏后不恢复。
  • 降低 Bridge、汽水 Provider、酷狗 Provider 的发布版日志噪声,高频诊断默认关闭,仅保留必要异常与显式 debug tag 输出。
  • 酷狗 Provider 更新到 1.1.2 / versionCode 7
  • 汽水 Provider 保持 1.1.0 / versionCode 2,安装说明提示在 LSP 管理器中为汽水音乐开启“还原内联钩子”。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.7.2.apk
  • LyricProvider-QQMusic-v2.7.2.apk
  • LyricProvider-163Music-v2.7.2.apk
  • LyricProvider-AppleMusic-v2.7.2.apk
  • LyricProvider-Poweramp-v2.7.2.apk
  • LyricProvider-Spotify-v2.7.2.apk
  • LyricProvider-QiShui-v2.7.2.apk
  • LyricProvider-KuGou-v2.7.2.apk
  • LyricProvider-v2.7.2.zip

Donate

WeChat and Alipay donation QR code

v2.7.1

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 08 Jul 17:45

ColorOS Live Lyrics Bridge v2.7.1

这一版基于 v2.7.0 继续收紧外部 Provider 接管链路,重点解决酷狗切歌歌词稳定性、锁屏歌词区域残留、网易云逐字格式兼容,以及发布版日志噪声。

新增

  • 新增对网易云括号式逐字时间轴的兼容,[00:46.230]Girl [00:46.470]tell ... 这类歌词会转换为可渲染的真逐字时间轴。
  • 新增网易云增强逐字/普通逐字格式的回归覆盖,翻译行和主歌词逐字时间可同时保留。
  • 新增酷狗原版 Provider 的本地完整歌词缓存优先链路,原版酷狗与概念版酷狗继续分别走各自稳定策略。

优化

  • 优化 Bridge 与官方 SystemUI 歌词区域切换逻辑,降低封面/歌词切换期间非歌词区域残留、重叠和错位闪现。
  • 优化外部 Provider 切歌接管,减少酷狗原版切歌后“暂无歌词”、歌词闪回官方渲染或上一首歌词残留的概率。
  • 优化酷狗 Provider:原版酷狗避免车载歌词兜底污染封面和歌词身份,概念版保持既有稳定行为;缓存命中、候选绑定和 lyricInfo 发布更保守。
  • 优化网易云 Provider:普通模式不再发送合成逐字,开启逐字相关模式时才输出增强 rawLyric;同时改善真逐字行中个别时间戳格式被误降级的问题。
  • 优化歌词解析:标点与下一词共用时间戳时不再把整行误判为异常逐字,减少真逐字歌词回落为逐行歌词。
  • 降低日志噪声:Bridge 高频布局/逐帧诊断收敛到 verbose 级别,酷狗和网易云 Provider 的桥接调试日志仅在显式 tag 下输出。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.7.1.apk
  • LyricProvider-QQMusic-v2.7.1.apk
  • LyricProvider-163Music-v2.7.1.apk
  • LyricProvider-AppleMusic-v2.7.1.apk
  • LyricProvider-Poweramp-v2.7.1.apk
  • LyricProvider-Spotify-v2.7.1.apk
  • LyricProvider-QiShui-v2.7.1.apk
  • LyricProvider-KuGou-v2.7.1.apk
  • LyricProvider-v2.7.1.zip

Donate

WeChat and Alipay donation QR code