Skip to content

v1.8.0 - Playback recovery and media action fixes

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 22 Jun 11:43

更新内容

  • 修复极端快速切歌时歌词跨曲错绑:当播放顺序为“有歌词 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 完整加载。