Skip to content

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ColorOS Live Lyrics Bridge

Latest release

v3.2.0 hardens the settings-application chain, fixes edge-case word-progress matching and cold-start artwork races, and removes per-frame SystemUI layout churn from custom lyric rendering. The settings page now uses lightweight sliders, stable LTPO-aware refresh-rate hints, and a cached floating preview while scrolling. The verified AOD attach/prime timing remains unchanged. Release assets include LyricProvider-v3.2.0.zip for installing all bundled 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; three-line lyrics pan inside a fixed two-line viewport when line-timed pseudo word progress is disabled.
  • Compact dynamic lock-screen lyric layout with smoother translation toggles and AOD/highlight transition stabilization.
  • Versioned lyric UI settings with four visual presets and a live preview, covering opacity, blur, scaling, glow, colors, motion, typography, alignment, row spacing, long-text browsing, and redraw caps; player translation defaults and guided opening-information cleanup use dedicated secondary pages.
  • 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

About

ColorOS Live Lyrics Bridge

Resources

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors