v1.8.0 - Playback recovery and media action fixes
更新内容
- 修复极端快速切歌时歌词跨曲错绑:当播放顺序为“有歌词 A -> 无歌词 B -> 有歌词 C”且切换很快时,不再把 C 的歌词错误绑定到 B,也不会让 C 继续沿用空歌词状态。
- 重构 ColorOS 媒体 action 接入:保留播放器原始
PlaybackStateaction 顺序,仅在 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提取LYRICS、USLT等时间轴歌词,并过滤“暂无歌词”“No lyrics”“纯音乐”等占位内容。 - 补充播放器接入文档、后台恢复注意事项及 ConePlayer 服务级歌词来源说明。
兼容性说明
- OPlus 历史播放器能力需要模块作用于系统框架(
system);升级后请确认 LSPosed 作用域包含系统框架、系统界面和需要进程内适配的播放器。 - 外部播放器的历史卡片声明只负责通过 OPlus 历史播放器判断。播放器仍需自行实现有效的
MediaSession、媒体按键接收、后台服务启动及播放队列恢复。 - 翻译按钮不会改变播放器原始媒体 action 的语义顺序;快速切歌时即使翻译按钮暂时等待刷新,也不会占用上一首、播放/暂停或下一首槽位。
验证
- 单元测试覆盖歌词跨曲重放保护、完整曲目标识绑定、OPlus 历史播放器策略、防抖逻辑和 ConePlayer 音轨元数据提取。
- 发布前执行
testDebugUnitTest、assembleDebug、lintDebug和assembleRelease。
升级提示
安装 v1.8.0 后请在 LSPosed 中确认模块已勾选目标播放器、系统界面与系统框架(system),随后重启设备,确保 SystemUI 与 system_server Hook 完整加载。