ColorOS Live Lyrics Bridge

Latest release

v3.0.0 is a major stability and performance update for AOD rendering, track handoff, ConePlayer car lyrics, and every bundled LyricProvider Bridge. It reduces stale or missing lyrics during rapid switching, scopes a rare SystemUI RecyclerView crash guard to the official lyric surface, and cuts hot-path allocation and diagnostic log volume. Release assets include LyricProvider-v3.0.0.zip for installing all provider APKs together.

简体中文

将受支持音乐播放器的时间轴歌词桥接到 ColorOS/OPlus 原生锁屏歌词界面,并补充逐字高亮、翻译切换、媒体卡片和后台恢复能力。

主要功能

  • 内置 Salt Player 与 ConePlayer 兼容适配器。
  • 支持播放器通过 MediaMetadata["lyricInfo"] 主动接入,无需依赖模块 APK。
  • Release 附带可选 LyricProvider APK,可分别适配 QQ 音乐、网易云音乐/荣耀版、Apple Music、Poweramp、Spotify、汽水音乐和酷狗音乐/概念版;Spotify Provider 当前仅支持原文歌词,暂不支持翻译。
  • 支持逐行 LRC、逐字 rawLyric、翻译行识别和重复歌词稳定定位。
  • 提供歌词界面设置,可控制普通逐行伪逐字、翻译逐字高亮、滚动放大、非实时行模糊和锁屏屏幕保活时长。
  • 通过通用歌词事务层隔离异步回调,避免有歌词/无歌词曲目连续切换时歌词错绑或后续持续显示无歌词。
  • 长日语、中文歌词按 Unicode 字符边界换行,避免无空格长句被自动缩小。
  • 保留播放器原始媒体 action 语义,仅通过 OPlus Rule0 提供翻译按钮,避免上一首、播放/暂停、下一首错位。
  • Salt Player 完全停止后可从 ColorOS 历史媒体卡片恢复播放。
  • ConePlayer 冷启动恢复播放时可从已选中音轨元数据恢复歌词。
  • 内置播放器自动接入 OPlus 历史播放器;外部播放器可通过 Manifest 元数据主动申请接入。

推荐作用域

本仓库的 SCOPE 使用 LSPosed 模块仓库要求的 JSON 数组格式:

["system", "com.salt.music", "ink.trantor.coneplayer", "ink.trantor.coneplayer.gp", "com.android.systemui"]
作用域 用途
system 在 system_server 中扩展 OPlus 历史播放器判断。
com.salt.music Salt Player 歌词抓取与后台播放恢复。
ink.trantor.coneplayer ConePlayer 正式版歌词适配。
ink.trantor.coneplayer.gp ConePlayer Google Play 版歌词适配。
com.android.systemui 锁屏歌词渲染、翻译按钮、媒体 action 与屏幕超时处理。

外部播放器仅通过公开 lyricInfo 协议接入歌词时,通常无需加入播放器作用域。若需要进入 OPlus 历史播放器栈,可在自身 AndroidManifest.xml 中声明:

<meta-data
    android:name="io.github.andrealtb.lockscreenlyrics.OPLUS_MEDIA_HISTORY"
    android:value="true" />

该声明不会替播放器实现 MediaSession、媒体按键接收、后台服务启动或播放队列恢复。

安装与升级

  1. 从 Releases 下载 APK 并安装。
  2. 在 LSPosed 中启用模块,并确认推荐作用域包含 systemcom.android.systemui 和需要进程内适配的播放器。
  3. 重启设备,使 SystemUI、system_server 和播放器进程中的 Hook 完整加载。

QQ 音乐、网易云音乐/荣耀版、Apple Music、Poweramp、Spotify、汽水音乐、酷狗音乐/概念版需要额外安装 Release 中对应的 LyricProvider APK,并在 LSPosed 中为目标播放器单独启用该 Provider。Release 同时提供 LyricProvider-<tag>.zip,里面包含全部 Provider APK。Apple Music Provider 只输出逐字和翻译歌词,不输出背景人声或对唱格式歌词;Spotify Provider 当前仅支持原文歌词,暂不支持翻译。汽水音乐还需要在 LSP 管理器中为汽水音乐开启“还原内联钩子”:对列表中的应用清理 libart.so

源码、完整接入协议和问题反馈:

English

Bridges timed lyrics from supported music players into the native ColorOS/OPlus lock-screen lyric UI, with word-level highlighting, translation controls, media-card integration, and playback recovery.

Highlights

  • Built-in compatibility adapters for Salt Player and ConePlayer.
  • Public MediaMetadata["lyricInfo"] protocol for self-integrating players without an APK dependency.
  • Optional LyricProvider APKs in Releases for QQ Music, NetEase Cloud Music/Honor, Apple Music, Poweramp, Spotify, QiShui Music, and KuGou Music/Concept. The Spotify Provider currently supports original lyrics only, without translations.
  • Line-timed LRC, word-timed rawLyric, translation detection, and stable repeated-line matching.
  • Compact dynamic lock-screen lyric layout with smoother translation toggles and AOD/highlight transition stabilization.
  • Lyric UI settings for line-timed pseudo word progress, translation progress, scroll scaling, inactive-line blur, and lock-screen keep-awake duration.
  • A generic lyric transaction layer prevents stale asynchronous callbacks from binding across tracks, including sequences that contain instrumentals or no-lyric tracks.
  • Long Japanese and Chinese lyric lines wrap at Unicode character boundaries instead of being reduced to tiny text.
  • Preserves the player's original media-action semantics and exposes translation only through OPlus Rule0, preventing previous/play-pause/next slot corruption.
  • Restores Salt Player playback from the ColorOS history media card after the app has fully stopped.
  • Restores ConePlayer lyrics from selected audio-track metadata during background playback resumption.
  • Automatically accepts built-in adapters into OPlus media history; external players may opt in through manifest metadata.

Recommended Scope

The repository SCOPE follows the required JSON-array format:

["system", "com.salt.music", "ink.trantor.coneplayer", "ink.trantor.coneplayer.gp", "com.android.systemui"]
Scope Purpose
system Extends OPlus media-history decisions in system_server.
com.salt.music Salt Player lyric capture and background playback recovery.
ink.trantor.coneplayer ConePlayer standard-package lyric adapter.
ink.trantor.coneplayer.gp ConePlayer Google Play-package lyric adapter.
com.android.systemui Lock-screen rendering, translation action, media actions, and screen-timeout handling.

External players that only publish the public lyricInfo payload usually do not need player-process scope. To opt into OPlus media history, an external player may declare:

<meta-data
    android:name="io.github.andrealtb.lockscreenlyrics.OPLUS_MEDIA_HISTORY"
    android:value="true" />

This declaration does not replace the player's own MediaSession, media-button receiver, playback service, or queue-restoration implementation.

Installation

  1. Download and install the APK from Releases.
  2. Enable the module in LSPosed and confirm that system, com.android.systemui, and the required built-in player scopes are selected.
  3. Reboot the device so the SystemUI, system_server, and player-process hooks are loaded.

QQ Music, NetEase Cloud Music/Honor, Apple Music, Poweramp, Spotify, QiShui Music, and KuGou Music/Concept require the matching LyricProvider APK from the same release, enabled separately for the target player in LSPosed. Releases also include LyricProvider-<tag>.zip with every provider APK. The Apple Music Provider only outputs word-timed and translated lyrics; background vocals and duet lanes are excluded. The Spotify Provider currently supports original lyrics only; translations are not supported. QiShui Music also requires LSPosed Manager's "Restore inline hooks" option for QiShui Music so libart.so is cleaned for listed apps.

Source, integration documentation, and support:

Support

WeChat and Alipay donation QR code

Releases

v3.0.0

Stable

7/10/2026, 7:05:21 AM

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

Assets

9

v2.7.2

Stable

7/8/2026, 5:46:10 PM

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

Assets

9

v2.7.1

Stable

7/8/2026, 5:45:36 PM

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

Assets

9

v2.7.0

Stable

7/7/2026, 2:20:54 PM

ColorOS Live Lyrics Bridge v2.7.0

这一版在 v2.6.0 的外部 Provider 接入基础上,继续收紧锁屏歌词渲染、屏幕超时保活和酷狗/网易云 Provider 的切歌链路,重点是更稳、更安静、更可控。

新增

  • 新增歌词界面设置页,可单独控制普通逐行歌词的伪逐字高亮、翻译行逐字高亮、滚动放大、非实时行模糊。
  • 新增锁屏屏幕保活设置,可关闭智能保活,也可设置亮屏保持秒数;留空或 0 表示歌词界面显示期间不额外限制保活时长。
  • LyricProvider 外部协议新增 Provider 声明字段,Provider 可以主动声明播放器包名、播放状态、曲目 generation、当前曲目可信度和翻译按钮能力。
  • 酷狗 Provider 新增 MediaSession lyricInfo 主动发布链路,Bridge 可在 SystemUI 尚未收到外部广播时直接从当前媒体会话读取完整歌词。

优化

  • 优化屏幕超时保活语义:保活重新支持从可见官方歌词行兜底识别锁屏歌词界面,减少 SystemUI 日志格式变化或日志延迟导致的保活失效;自定义超时只控制保活窗口,wake lock 仍保持短租约续租,降低异常长持有风险。
  • 降低默认运行日志噪声:普通信息日志默认静默,酷狗 Provider 诊断日志仅在显式 debug tag 下输出。
  • 优化 SystemUI 性能开销:缓存歌词 RecyclerView 类型判断与 TextView 所属 RecyclerView 关系,减少高频绘制与布局路径上的父节点遍历和字符串匹配。
  • 优化官方歌词行缩放与模糊过渡,降低 AOD/亮屏切换、外部 Provider 接管和播放跳转时的旧行闪现与缩放抖动。
  • 优化外部 Provider 切歌逻辑,使用声明式播放器身份、generation、trackKey 和当前曲目可信度过滤迟到歌词,减少跨曲目串词。
  • 优化酷狗 Provider:歌词文件读取增加写入完成等待、本地歌词文件兜底探测、候选歌词延迟绑定和缓存命中校验,切歌时更少出现“暂无歌词”或上一首歌词残留。
  • 优化网易云 Provider:根据用户当前歌词模式决定是否发送逐字 rawLyric,避免普通歌词模式下合成逐字时间轴带来的显示节奏偏差。

Release 资产

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

Donate

WeChat and Alipay donation QR code

Assets

9

v2.6.0

Stable

7/5/2026, 7:17:45 PM

ColorOS Live Lyrics Bridge v2.6.0

这一版在 v2.5.0 的歌词解析与锁屏渲染稳定性基础上,新增酷狗音乐/概念版 LyricProvider 接入,并继续收紧外部 Provider 切歌时的异步歌词绑定、AOD 恢复和 RecyclerView 过渡显示。

核心更新

  • 新增酷狗音乐与酷狗概念版 Provider 支持,Release 附带 LyricProvider-KuGou-v2.6.0.apk
  • 酷狗 Provider 支持 KRC、LYC、LRC、TXT 歌词文件解析,输出逐字歌词和翻译歌词,并通过 Bridge 外部歌词协议转发到 ColorOS 锁屏歌词。
  • Bridge 为酷狗/概念版登记播放器包名、source、播放状态、翻译开关和 AOD/历史播放器放行能力。
  • 酷狗/概念版在 SystemUI 标题短暂为空时,可以凭 Provider 的 trackGeneration 与曲目 key 提升为当前歌词,减少切歌时“暂无歌词”。

切歌与显示稳定性

  • 外部 Provider 切歌时增加 generation/key 校验,丢弃迟到歌词,避免上一首歌词串到当前曲目。
  • 外部歌词切歌软遮罩会等待当前歌词 model 准备完成后再恢复 RecyclerView,减少切歌瞬间的缩放抖动和旧行闪现。
  • 合并频繁的外部 playback reset 过渡,避免流媒体切歌时反复重启 handoff。
  • 优化官方歌词行的缩放、淡入和模糊过渡,保留滚动放大效果,同时降低 AOD/锁屏切换后的恢复抖动。

Provider 更新

  • KuGou Provider 更新到 1.1.0 / versionCode 5,新增 Bridge 转发、播放状态广播、曲目 generation 和歌词缓存校验。
  • Poweramp Provider 更新到 1.0.9 / versionCode 6,改进本地内嵌歌词与网络匹配歌词的 Bridge 发布链路。
  • Poweramp Provider 新增安全日志封装,避免 YukiHookAPI 日志不可用时影响播放器进程。

日志与源码

  • 默认降低切歌、RecyclerView 过渡、酷狗缓存命中和 Poweramp probe 明细日志噪声;需要排查时仍可通过对应 tag 的 DEBUG 日志打开。
  • 清理 LyricProvider 顶层构建脚本中的重复注释和未使用变量。
  • 更新 LyricProvider Bridge 接入文档、播放器 hook 路线、README 和 LSPosed 展示元数据。

打包流程

  • Release 继续提供各播放器单独的 LyricProvider APK。
  • 新增 LyricProvider-v2.6.0.zip,内含全部 LyricProvider APK,方便需要一次安装所有 Provider 的用户下载。
  • 主仓库 Release 与 LSPosed mirror Release 都会上传单独 APK 和整合 zip。

测试

  • 已执行 :app:testDebugUnitTest
  • 已执行主模块 release 构建。
  • 已执行 :kugou-music:assembleRelease
  • 已对本地打包的主模块与 KuGou Provider APK 执行 apksigner verify

Release 资产

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

Donate

WeChat and Alipay donation QR code

Assets

9

v2.5.0

Stable

7/4/2026, 3:57:13 PM

ColorOS Live Lyrics Bridge v2.5.0

这一版重点修复复杂歌词解析和官方锁屏渲染稳定性,尤其是逐字歌词、翻译、罗马音、重复歌词和格式异常混在一起时的错位问题。
同时新增可自定义选项:默认样式、滚动放大和非实时行模糊。

核心更新

  • 新增歌词 lane 分类器,同时间多行会稳定区分主歌词、翻译、罗马音、原文变体和 credit 行。
  • 修复 He did it / 他背叛了我 这类异常逐字时间导致的夹心显示问题,避免渲染成 He did / 他背叛了我 / it
  • 修复 Bejeweled、coney island 等增强 LRC 中主歌词被翻译行覆盖,只显示翻译的问题。
  • 修复部分歌词缺失翻译、重复短句、多句同时间戳时的 lane 错位和漏解析。
  • 清理“以下歌词翻译由 xxx 提供”等翻译提供方说明,避免被当作歌词内容。
  • 对异常大间隔或非递增的逐字时间做整行降级,减少坏格式歌词触发的渲染异常。
  • 修复 All Too Well 后段重复歌词和翻译近邻导致的锁屏歌词抖动。
  • 修复 closure、willow、'tis the damn season 等开头 title/credit 行抢占首句焦点的问题,第一句歌词在正式开始前保持清晰。

锁屏显示与设置

  • 新增歌词界面设置页,可切换默认样式、滚动放大和非实时行模糊。
  • 优化官方歌词列表 alias 复用和首句 display anchor,降低官方列表缺 title/credit 或行号偏移时的错位风险。
  • 优化行高、缩放、模糊和 AOD/锁屏切换时的刷新稳定性。

Provider 更新

  • Poweramp Provider 更新到 1.0.8 / versionCode 5,修复部分 API 102 兼容框架中因包可见性或多余 scope 导致 Poweramp 启动崩溃的问题。
  • Poweramp Provider 现在只注入 com.maxmpz.audioplayer 主包,移除未使用的 com.maxmpz.audioplayer.unlock scope,并声明对 Poweramp 主包的 <queries> 可见性。

性能与日志

  • 默认关闭逐帧布局诊断和解析 trace,减少常规使用时的 logcat 噪声。
  • 保留 LockscreenLyricsLockscreenLyricsParse DEBUG log tag,用于后续精准排查。
  • 优化长歌词热路径查询,减少每帧重复扫描歌词行。

测试

  • 新增歌词解析回归矩阵,覆盖 no body, no crime、Bejeweled、coney island、provider credit 清理、异常逐字时间降级等场景。
  • 发布前执行 :app:testDebugUnitTest:app:assembleDebug

Release 资产

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

Donate

WeChat and Alipay donation QR code

Assets

7

v2.4.0

Stable

7/3/2026, 1:08:08 PM

ColorOS Live Lyrics Bridge v2.4.0

这一版重点优化锁屏歌词布局、亮屏/AOD 切换稳定性,并新增汽水音乐 Provider 适配。

核心更新

  • 优化英文歌词换行:短句能一行显示就不再强行拆行,例如 Forgive me, Peter
  • 长英文歌词仍会在实际溢出时做均衡换行,避免过长行挤出屏幕。
  • 修复亮屏切 AOD 时歌词/翻译行闪烁抖动:在 TextView.setText 和 attach 阶段提前固定歌词高度,避免 AOD 模板重绑时先按单行布局。
  • 增强 AOD/锁屏切换稳定性:增加最近绘制帧 fallback、翻译短缓存,减少系统重排或短暂数据空窗造成的视觉跳动。
  • 优化歌词面板淡入逻辑,避免已经可见时重复隐藏再淡入。
  • 改善歌曲开头首句还没到时间轴时的显示稳定性。

播放器与 AOD 适配

  • 新增汽水音乐 Provider 适配,Release 附带 LyricProvider-QiShui-v2.4.0.apk

汽水音乐使用提醒

汽水音乐需要额外安装 LyricProvider-QiShui-v2.4.0.apk,并在 LSPosed 中为 com.luna.music 启用该 Provider。

同时,请在 LSP 管理器中为汽水音乐开启“还原内联钩子”:对列表中的应用清理 libart.so。否则汽水音乐可能弹出“当前版本不安全”,Provider 也可能无法稳定获取歌词。

另外,感谢来自酷安用户@sylajiao的捐赠。

文档与发布

  • 更新演示 GIF,体积从约 43.6 MB 降到约 17.2 MB。
  • 新增捐赠二维码 PY_QR.png
  • README / 中文 README / LSPosed README 增加支持项目说明。
  • Release workflow 增加自动附加 Donate 区块的逻辑。
  • Release workflow 新增汽水音乐 Provider 构建与发布资产。

Release 资产

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

测试

  • 新增 LyricLineBreakPolicy 换行策略测试,覆盖“短英文不拆行”和“长英文可均衡拆行”。
  • 发布前执行 :app:assembleDebug:qishui-music:assembleDebuggit diff --check

捐赠

WeChat and Alipay donation QR code

Assets

7

v2.3.3

Stable

6/30/2026, 11:07:57 PM

ColorOS Live Lyrics Bridge v2.3.3

这一版继续修复 v2.3.x 的锁屏歌词渲染稳定性,重点处理拖动播放进度后的实时行恢复、歌词列表定位,以及 LyricProvider 接入播放器切歌时偶发露出官方渲染的问题。

当前支持的播放器

Bridge 内置适配:

  • Salt Player
  • ConePlayer 正式版与 Google Play 版
  • 主动发布完整 MediaMetadata["lyricInfo"] 的播放器,例如 Halcyon
  • Poweramp 内部适配

Provider 适配,需要额外安装 Release 附带的独立 LyricProvider APK,并在 LSPosed 中为目标播放器启用:

  • LyricProvider-QQMusic:QQ 音乐
  • LyricProvider-163Music:网易云音乐、网易云音乐荣耀版
  • LyricProvider-AppleMusic:Apple Music
  • LyricProvider-Poweramp:Poweramp 外部 Provider 兼容包
  • LyricProvider-Spotify:Spotify

修复与改进

  • 修复拖动播放进度后,目标位置落在间奏或两句歌词中间时,锁屏歌词可能停留在旧行,直到下一句歌词开始才滚动的问题。
  • 修复将播放进度拉到开头时,第一句歌词小概率落在渲染区域外,需要唱到第二句才恢复的问题。
  • 统一 seek 后强制定位和实时播放时的活动行锚点,减少目标行落在绘制区域偏下、随后又被实时歌词拉回的问题。
  • 优化 seek 后歌词跳转过程中的滚动保护和精确落点校准,减少定位过头、回弹和上下抖动。
  • 修复 Apple Music、QQ 音乐、网易云音乐等 LyricProvider 接入播放器切歌时,外部歌词 handoff 期间可能提前淡入,导致官方渲染闪一下或整体绘制闪烁的问题。
  • 收敛 seek、handoff 和布局定位诊断日志,正式使用时减少 LockscreenLyrics logcat 噪声;需要排查时仍可通过 DEBUG 日志级别打开细节输出。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.3.3.apk
  • LyricProvider-QQMusic-v2.3.3.apk
  • LyricProvider-163Music-v2.3.3.apk
  • LyricProvider-AppleMusic-v2.3.3.apk
  • LyricProvider-Poweramp-v2.3.3.apk
  • LyricProvider-Spotify-v2.3.3.apk

验证

  • .\scripts\gradle-local.cmd :app:testDebugUnitTest :app:assembleDebug
  • .\scripts\gradle-local.cmd :app:assembleRelease
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

6

v2.3.2

Stable

6/30/2026, 6:47:09 AM

ColorOS Live Lyrics Bridge v2.3.2

这一版继续收敛 v2.3.x 的歌词解析兼容性,重点修复 LyricProvider 外部歌词在部分混合逐字歌词格式下出现的主行、翻译行和官方列表项错位问题。

当前支持的播放器

Bridge 内置适配(只安装 ColorOS-Live-Lyrics-Bridge 即可):

  • Salt Player
  • ConePlayer 正式版与 Google Play 版
  • 主动发布完整 MediaMetadata["lyricInfo"] 的播放器,例如 Halcyon
  • Poweramp 内部适配

Provider 适配(需要额外安装 Release 附带的独立 LyricProvider APK,并在 LSPosed 中为目标播放器启用):

  • LyricProvider-QQMusic:QQ 音乐
  • LyricProvider-163Music:网易云音乐、网易云音乐荣耀版
  • LyricProvider-AppleMusic:Apple Music
  • LyricProvider-Poweramp:Poweramp 外部 Provider 兼容包
  • LyricProvider-Spotify:Spotify

修复与改进

  • 修复网易云音乐等 Provider 外部歌词中,“逐字主行后紧跟无逐字主行”被误判为翻译行,导致锁屏歌词顺序错乱、重复行、翻译位显示主歌词的问题。
  • 修复外部歌词模型和 ColorOS 官方歌词列表项数量不一致时,adapter index 回退到错误主行导致的首屏/切歌渲染错位。
  • 改进官方歌词显示文本别名映射,只在文本确实匹配主行时覆盖显示文本,避免把元信息或下一句歌词挂到逐字行上。
  • 修复 We are, we are, we areIs it? Is it? 这类重复英文短句被误识别成罗马音,进而只显示翻译行的问题。
  • 为 LyricProvider 外部歌词增加 UTF-8 被 GB18030 误解码时的 Bridge 侧兜底修复;Provider 模块本身不引入本次调试期的 163 Music 编码补丁。
  • 关闭正式包中的歌词解析 trace 日志,减少正常使用时的 logcat 噪声。
  • 改进本地 Gradle 构建脚本在中文路径、Gradle 锁文件、项目目录 ACL 异常场景下的 fallback 能力。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.3.2.apk
  • LyricProvider-QQMusic-v2.3.2.apk
  • LyricProvider-163Music-v2.3.2.apk
  • LyricProvider-AppleMusic-v2.3.2.apk
  • LyricProvider-Poweramp-v2.3.2.apk
  • LyricProvider-Spotify-v2.3.2.apk

验证

  • .\scripts\gradle-local.cmd :app:testDebugUnitTest :app:assembleDebug
  • .\scripts\gradle-local.cmd :app:assembleRelease
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

6

v2.3.1

Stable

6/27/2026, 3:42:51 PM

ColorOS Live Lyrics Bridge v2.3.1

这一版是 v2.3.0 后的小修版本,重点修复歌词解析兼容性、连续快进后的逐字渲染恢复,以及 Apple Music Provider 的小版本兼容问题。

当前支持的播放器

Bridge 内置适配(只安装 ColorOS-Live-Lyrics-Bridge 即可):

  • Salt Player
  • ConePlayer 正式版与 Google Play 版
  • 主动发布完整 MediaMetadata["lyricInfo"] 的播放器,例如 Halcyon

Provider 适配(需要额外安装 Release 附带的独立 LyricProvider APK,并在 LSPosed 中为目标播放器启用):

  • LyricProvider-QQMusic:QQ 音乐
  • LyricProvider-163Music:网易云音乐、网易云音乐荣耀版
  • LyricProvider-AppleMusic:Apple Music
  • LyricProvider-Poweramp:Poweramp
  • LyricProvider-Spotify:Spotify

修复与改进

  • 修复部分歌词格式下主歌词、翻译、标音行识别错误导致的渲染混乱。
  • 修复锁屏界面连续快进后,逐字歌词概率不再渲染的问题。
  • 加强 Apple Music Provider 的版本兼容性:使用 DexKit 查找 Apple Music 内部 PlaybackItem 转换 hook 点,避免小版本混淆类名变化后失效。
  • Apple Music Provider 版本更新至 1.0.22
  • 收敛 Bridge 与 Apple Music Provider 的正式版调试日志,减少正常播放时的 logcat 噪声。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.3.1.apk
  • LyricProvider-QQMusic-v2.3.1.apk
  • LyricProvider-163Music-v2.3.1.apk
  • LyricProvider-AppleMusic-v2.3.1.apk
  • LyricProvider-Poweramp-v2.3.1.apk
  • LyricProvider-Spotify-v2.3.1.apk

验证

  • .\scripts\gradle-local.cmd testDebugUnitTest assembleDebug
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

6

v2.3.0

Stable

6/27/2026, 4:56:18 AM

ColorOS Live Lyrics Bridge v2.3.0

这一版正式加入 Apple Music Provider,并修复外部 Provider 歌词在锁屏渲染中的若干边界问题。

当前支持的播放器

Bridge 内置适配(只安装 ColorOS-Live-Lyrics-Bridge 即可):

  • Salt Player
  • ConePlayer 正式版与 Google Play 版
  • 主动发布完整 MediaMetadata["lyricInfo"] 的播放器,例如 Halcyon

Provider 适配(需要额外安装 Release 附带的独立 LyricProvider APK,并在 LSPosed 中为目标播放器启用):

  • LyricProvider-QQMusic:QQ 音乐
  • LyricProvider-163Music:网易云音乐、网易云音乐荣耀版
  • LyricProvider-AppleMusic:Apple Music
  • LyricProvider-Poweramp:Poweramp
  • LyricProvider-Spotify:Spotify(不支持翻译)

改进

  • 新增 Apple Music Provider:支持逐字歌词与翻译歌词,不输出背景人声或对唱格式歌词。
  • Apple Music Provider 通过播放器内部歌词对象取词,并向 Bridge 转发完整 lyricInfo
  • Bridge 侧翻译开关改为按播放器独立保存,避免 Salt 等播放器关闭翻译后影响 QQ 音乐、网易云音乐、Apple Music 等 Provider。
  • Bridge 可在 QQ 音乐、网易云音乐、Apple Music 等官方占用翻译按钮位置的播放器中覆盖可用媒体 action,补回翻译开关。
  • 修复 Apple Music 中文主行带 OhHohICBM 等短英文尾词时被误拆成翻译/主行错位的问题。
  • 保持 Provider APK 的独立模块形态:Bridge APK 不内置大厂播放器 Hook,用户按目标播放器选择安装对应 Provider。
  • 补充外部歌词源和短英文尾词解析单测,锁定 Apple Music、Poweramp、Spotify 的差异化策略。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.3.0.apk
  • LyricProvider-QQMusic-v2.3.0.apk
  • LyricProvider-163Music-v2.3.0.apk
  • LyricProvider-AppleMusic-v2.3.0.apk
  • LyricProvider-Poweramp-v2.3.0.apk
  • LyricProvider-Spotify-v2.3.0.apk

验证

  • .\scripts\gradle-local.cmd testDebugUnitTest assembleDebug
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

6

v2.2.0

Stable

6/27/2026, 2:07:45 AM

ColorOS Live Lyrics Bridge v2.2.0

这一版把 QQ 音乐、网易云音乐、Poweramp、Spotify 的 LyricProvider 辅助模块纳入正式发布包,并整理 Bridge 侧对外部歌词源的接入逻辑。

当前支持的播放器

Bridge 内置适配(只安装 ColorOS-Live-Lyrics-Bridge 即可):

  • Salt Player
  • ConePlayer 正式版与 Google Play 版
  • 主动发布完整 MediaMetadata["lyricInfo"] 的播放器,例如 Halcyon

Provider 适配(需要额外安装 Release 附带的独立 LyricProvider APK,并在 LSPosed 中为目标播放器启用):

  • LyricProvider-QQMusic:QQ 音乐
  • LyricProvider-163Music:网易云音乐、网易云音乐荣耀版
  • LyricProvider-Poweramp:Poweramp
  • LyricProvider-Spotify:Spotify(不支持翻译)

改进

  • 新增 Bridge 侧外部歌词源注册表,统一管理 Provider source、播放器包名、播放状态能力和 Poweramp 特殊匹配策略。
  • 扩展外部 lyricInfo 广播契约,支持 trackChangedlyricReady、播放状态、播放进度和 track generation,降低切歌后旧歌词回绑概率。
  • 支持 Spotify Provider 发送播放状态,修复广告、暂停和切歌场景下歌词抢跑或停不住的问题。
  • 支持 Poweramp Provider 在播放器内部补写 lyricInfo,优先使用 Poweramp 当前媒体会话和内部歌词结果,避免外部广播路线切歌后长时间无歌词。
  • 保留 Provider APK 的独立模块形态:Bridge APK 不内置大厂播放器 Hook,用户按目标播放器选择安装对应 Provider。
  • 补充外部歌词源能力单测,锁定 Spotify 与 Poweramp 的 source 映射和差异化策略。

Release 资产

  • ColorOS-Live-Lyrics-Bridge-v2.2.0.apk
  • LyricProvider-QQMusic-v2.2.0.apk
  • LyricProvider-163Music-v2.2.0.apk
  • LyricProvider-Poweramp-v2.2.0.apk
  • LyricProvider-Spotify-v2.2.0.apk

验证

  • .\scripts\gradle-local.cmd testDebugUnitTest assembleDebug
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

5

v2.1.0

Stable

6/25/2026, 7:23:21 PM

ColorOS Live Lyrics Bridge v2.1.0

这次主要优化锁屏歌词渲染密度、翻译切换动画和增强 LRC 双语解析稳定性。

改进

  • 将官方歌词 item 从单纯固定高度改为动态槽位高度,保留 56dp 最小高度和约 12dp 垂直留白,缓解短句间距过大和长句布局不均匀的问题。
  • 翻译开关继续保持“最多两行主歌词 + 一行翻译”的显示规则,并优化展开/收起过渡,减少歌词绘制抖动和展开末尾轻微回弹。
  • 在锁屏高亮状态与 AOD 暗屏切换期间增加官方 LyricsRecyclerView settle 窗口,降低 active line 瞬时跳动概率。
  • 优化同时间戳增强 LRC 解析,避免英文逐字主歌词被误判为日文罗马音而与中文翻译互换。
  • 补充 Taylor Swift 与 Beauty And A Beat 等用户反馈样例的解析回归测试,覆盖 <00:00.000>[00:00.000] 两种逐字时间标签形式。

清理

  • 收拢翻译切换后的 RecyclerView、TextView 与根视图刷新逻辑。
  • 移除重复的官方歌词 settle 触发,并整理歌词槽位高度计算接口。

验证

  • .\scripts\gradle-local.cmd testDebugUnitTest assembleDebug
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\validate-lsposed-metadata.ps1
  • git diff --check

Assets

2

v2.0.1

Stable

6/25/2026, 9:17:34 AM

ColorOS Live Lyrics Bridge v2.0.1

这是一次兼容性和锁屏渲染稳定性修复版本。

修复

  • 修复日文歌词中包含“鼓”等制作信息关键词时,可能被误判为参与者/制作信息,导致主歌词丢失或和翻译错位的问题。
  • 兼容同一时间戳缺少罗马音行的日文逐字歌词,优先保留日文主歌词并继续匹配中文翻译。
  • 修复锁屏界面连续快进或连续切换播放位置后,逐字歌词 RecyclerView 可能停留在隐藏 alpha,导致逐字歌词不显示的问题。
  • 增加更长尾的歌词可见性恢复检查,覆盖 SystemUI RecyclerView 晚布局或动画被打断后的隐藏态。

说明

  • Release 继续附带 LyricProvider-QQMusic APK,作为 QQ 音乐歌词提供模块。
  • ColorOS-Live-Lyrics-BridgeLyricProvider-QQMusic 使用同一套 release 签名。

验证

  • 已执行 testDebugUnitTest
  • 已执行 assembleDebug

Assets

2

v2.0.0

Stable

6/25/2026, 8:33:22 AM

ColorOS Live Lyrics Bridge v2.0.0

这是一次面向外部歌词提供模块的主要更新:

  • 适配QQ音乐
  • 歌词解析优化

新增

  • 接入 LyricProvider 外部歌词桥接协议,支持由歌词提供模块向 ColorOS Live Lyrics Bridge 投递完整歌词数据。
  • Release 附带 LyricProvider-QQMusic APK,可为词幕和 ColorOS Live Lyrics Bridge 提供 QQ 音乐歌词。
  • SystemUI 侧支持外部歌词覆盖官方 lyricInfo,在 QQ 音乐场景下优先使用逐字歌词渲染。
  • 支持外部歌词翻译数据进入锁屏歌词渲染链路。

改进

  • 优化 QQ 音乐切歌稳定性,减少首句错位、官方歌词闪现、歌词区域跳动等问题。
  • 优化外部歌词模型切换时的软遮罩和淡入,降低切歌时官方渲染短暂露出的概率。
  • 改进歌词解析中的日语罗马音、翻译行和共享英文尾词识别,减少把罗马音误判为翻译的问题。
  • 改进本地歌词解析对逐字 LRC、翻译行、长句和重复行的处理。
  • 增强 SystemUI 歌词 RecyclerView 定位和首句对齐逻辑。

说明

  • ColorOS-Live-Lyrics-Bridge 仍是 LSPosed 主模块。
  • LyricProvider-QQMusic 是本次 Release 的附加 APK,需要单独安装并在 LSPosed 中为 QQ 音乐启用。
  • 两个 APK 使用同一套 release 签名。

Assets

2

v1.9.5

Stable

6/24/2026, 11:10:07 PM

更新内容

  • 重构 Salt Player 歌词接入链路,改为在 Salt 最终发布歌词结果后读取歌曲与歌词结果,减少异步回调串歌、旧结果覆盖新歌、同一首歌偶发提示无歌词的问题。
  • 优化歌词会话匹配与回调稳定性,改善开启状态栏歌词后部分歌曲更容易出现“暂无歌词”的情况。
  • 优化普通逐字歌词、增强逐字歌词的主歌词/翻译选择逻辑,日文歌曲会自动剔除罗马音,只保留主歌词和翻译。
  • 增强对歌名、词曲、编曲、制作人等参与者信息逐字行的兼容,避免这类元信息导致歌词解析中断或混乱。
  • 撤回按 Live 岛、锁屏小控件、大封面、QS Media 等不同位置强制隐藏翻译按钮的实验性处理,避免影响 Salt 桌面歌词按钮和系统媒体控制卡稳定性。

温馨提示

温馨提示:如遇到歌词无法解析,锁屏提示歌曲暂无歌词,或者解析混乱/错位,请优先尝试使用 Lyrico 歌曲元数据编辑器匹配 QQ 音乐逐字歌词或增强逐字歌词。
如果问题依旧,请提供歌曲、歌词源文件以及触发 bug 后的 LSP 日志文件。

验证

  • 已执行 testDebugUnitTest
  • 已执行 assembleDebug

Assets

1

v1.9.4

Stable

6/23/2026, 1:05:38 AM

更新内容

  • 修复了普通逐字歌词格式的解析混乱

温馨提示

温馨提示:如遇到歌词无法解析,锁屏提示歌曲暂无歌词,或者解析混乱/错位,请优先尝试使用 Lyrico 歌曲元数据编辑器匹配QQ音乐逐字歌词或增强逐字歌词。
如果问题依旧,请提供歌曲、歌词源文件以及触发bug后的LSP日志文件

验证

  • 已执行 testDebugUnitTest

Assets

1

v1.9.3

Stable

6/22/2026, 10:15:45 PM

更新内容

  • 修复剩余文本已能整行放下时,逻辑仍强制在最后一个空格断开,导致 mouth、do 这类末词单独成行。现在会完整保留:
    She says, "That ain't my
    merlot on his mouth"

温馨提示

温馨提示:如遇到歌词无法解析,锁屏提示歌曲暂无歌词,或者解析混乱/错位,请优先尝试使用 Lyrico 歌曲元数据编辑器匹配QQ音乐逐字歌词。
如果问题依旧,请提供歌曲、歌词源文件以及触发bug后的LSP日志文件

验证

  • 已执行 testDebugUnitTest

Assets

1

v1.9.2

Stable

6/22/2026, 9:49:21 PM

更新内容

  • 修正 v1.9.1 的长歌词布局:主歌词维持统一字号,不再为了压入两行而自动缩小。
  • 长句会依据可用宽度自然换行;带翻译歌词仍保留固定槽位与逐字高亮、翻译显示逻辑。

验证

  • 已执行 testDebugUnitTest

Assets

1

v1.9.1

Stable

6/22/2026, 9:36:54 PM

更新内容

  • 修复带翻译歌词的长英文句:主歌词会优先适配为两行,避免末尾单词被挤到第三行。
  • 修复普通逐行 LRC 的伪逐字显示:长句换行窗口会依据实际渲染宽度和高亮位置切换,不会在进度中段提前跳到下一行。
  • 修复短歌词被误匹配为同前缀长歌词的问题;例如 No, no 不会再显示为 No, no body, no crime 及其翻译。

验证

  • 已执行 testDebugUnitTest

Assets

1

6/22/2026, 8:47:30 PM

更新内容

  • 重构为播放器无关的歌词事务层:歌词来源现在显式区分“已解析歌词”“确认无歌词”“解析失败”和“来源未命中”,并按来源能力声明关联到当前曲目、下一次稳定元数据或明确曲目标识,不再依赖 Salt Player 专用时序补丁。
  • 修复含纯音乐时的连锁歌词错位:无身份的被动回调不再抢绑当前曲目;完整标题/歌手、媒体 ID、媒体 URI 与请求上下文会优先精确匹配;强身份命中会清理此前遗留的弱事件,阻断“前后歌词互换”及后续持续显示无歌词的扩散。
  • 改进曲目身份识别:兼容 LRC 的 [ti]/[ar]、首行“标题 - 歌手”、合作歌手与 feat. 写法,并识别“英文标题(中文译名)”这类文件名/元数据差异,例如 Boulevard of Broken Dreams(碎梦大道)
  • 修复异常 LRC 行:一行内粘连的多个方括号时间标签会拆成正确的独立时间点,避免后续歌词文本和时间轴被合并。
  • 修复无空格日语、中文长句的锁屏显示:主歌词现在按 Unicode 字符边界换行,英文仍优先按词换行,并遵守常见 CJK 标点禁则,避免整句被压缩成过小字号。
  • ConePlayer 的已选音轨元数据来源明确标记为当前曲目来源;Salt Player 保持“下一次稳定元数据”关联语义,两个适配器共享同一套事务保护。

兼容性与升级

  • 适用于 Salt Player、ConePlayer 和通过公开 lyricInfo 协议接入的播放器;事务关联规则由来源能力决定,不再以播放器包名分叉。
  • 安装升级后通常无需重启手机:请重启目标播放器进程和系统界面,使播放器与 SystemUI 中的 Hook 重新加载。若同时修改了 LSPosed 作用域,或需要验证 system 中的 OPlus 历史播放器能力,请重启设备。

验证

  • 单元测试覆盖无歌词夹在有歌词曲目之间、重复回调、延迟回调、强身份同步屏障、译名标题匹配、粘连时间标签,以及日语/CJK 自动换行与标点边界。
  • 发布前执行 testDebugUnitTestlintDebugassembleDebugassembleRelease

Assets

1

6/22/2026, 11:43:44 AM

更新内容

  • 修复极端快速切歌时歌词跨曲错绑:当播放顺序为“有歌词 A -> 无歌词 B -> 有歌词 C”且切换很快时,不再把 C 的歌词错误绑定到 B,也不会让 C 继续沿用空歌词状态。
  • 重构 ColorOS 媒体 action 接入:保留播放器原始 PlaybackState action 顺序,仅在 OPlus Rule0 展示列表中提升翻译按钮,修复翻译按钮重复、上一首/下一首错位及媒体卡片控制按钮被带乱的问题。
  • 翻译按钮扩展到所有内置适配器及公开 lyricInfo 协议播放器;外部播放器被动态识别后会刷新 OPlus Rule0,不再因 SystemUI 初始化时序较早而永久错过按钮。
  • 修复 Salt Player 完全停止后无法从 ColorOS 控制中心恢复播放的问题:模块会处理播放媒体按键、启动 MusicService、延迟发送 com.salt.music.play_or_pause,并通过防抖避免重复广播造成二次触发。
  • 增加 OPlus 历史播放器接入:所有内置 PlayerAdapter 自动放行;外部播放器可在 Manifest 声明 io.github.andrealtb.lockscreenlyrics.OPLUS_MEDIA_HISTORY=true。不再要求手工修改 Multimedia_Daemon_List.xml
  • 修复 ConePlayer 冷启动恢复播放后没有歌词的问题:从 Media3 已选中音轨的 Format.metadata 提取 LYRICSUSLT 等时间轴歌词,并过滤“暂无歌词”“No lyrics”“纯音乐”等占位内容。
  • 补充播放器接入文档、后台恢复注意事项及 ConePlayer 服务级歌词来源说明。

兼容性说明

  • OPlus 历史播放器能力需要模块作用于系统框架(system);升级后请确认 LSPosed 作用域包含系统框架、系统界面和需要进程内适配的播放器。
  • 外部播放器的历史卡片声明只负责通过 OPlus 历史播放器判断。播放器仍需自行实现有效的 MediaSession、媒体按键接收、后台服务启动及播放队列恢复。
  • 翻译按钮不会改变播放器原始媒体 action 的语义顺序;快速切歌时即使翻译按钮暂时等待刷新,也不会占用上一首、播放/暂停或下一首槽位。

验证

  • 单元测试覆盖歌词跨曲重放保护、完整曲目标识绑定、OPlus 历史播放器策略、防抖逻辑和 ConePlayer 音轨元数据提取。
  • 发布前执行 testDebugUnitTestassembleDebuglintDebugassembleRelease

升级提示

安装 v1.8.0 后请在 LSPosed 中确认模块已勾选目标播放器、系统界面与系统框架(system),随后重启设备,确保 SystemUI 与 system_server Hook 完整加载。

Assets

1

6/21/2026, 9:43:44 AM

更新内容

  • 修复部分 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 与屏幕超时策略完整生效。

Assets

1

6/21/2026, 9:36:21 AM

更新内容

  • 新增播放器无关的歌词会话规约器,将异步歌词回调与稳定曲目信息绑定,避免切歌期间把新歌词写入上一首歌曲;同时兼容 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 缓存完整生效。

Assets

1

6/21/2026, 9:36:16 AM

更新内容

  • 新增 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 中确认模块已勾选对应播放器与系统界面,然后重启相关播放器进程和系统界面;若首次安装,建议直接重启设备。

Assets

1

6/21/2026, 9:36:11 AM

更新内容

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

播放器接入

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

升级提示

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

Assets

1

6/21/2026, 9:36:06 AM

更新内容

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

播放器接入

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

升级提示

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

Assets

1

v1.5.0

Stable

6/21/2026, 9:36:01 AM

更新内容

  • 引入 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

Assets

1

v1.3.0

Stable

6/21/2026, 9:35:46 AM

更新内容

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

Assets

1