Skip to content

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