Skip to content

MusicPlayer v2.22.12

Choose a tag to compare

@HelloEarth520 HelloEarth520 released this 09 Sep 23:31
· 7 commits to main since this release

MusicPlayer v2.22.12

  • 版本号:versionName 2.22.12 / versionCode 53
  • 日期:2026-09-09
  • 反馈问题(v2.22.11 实测):
    1. 锁屏/通知栏暂停 → 通知整个消失,需回应用手动播放才重新出现。
    2. 小窗展开后关闭 → 不在后台;播放中关闭后残留,只能长按应用→应用信息→强停。
    3. 原子岛仍未上(需用户确认已开「显示原子通知」开关)。

根因与修复

① 暂停通知消失(Java 原生,根因)

  • 根因:update() 原逻辑"暂停 → MediaControlService.stopIfRunning()"摘除前台。
    部分厂商 ROM 会清理"暂停且无前台服务"的媒体通知。此前 v2.22.10 靠 JS 每 500ms
    轮询重推把通知"续命"顶回来 → 表现为"收起→重弹"闪烁;v2.22.11 暂停跳过轮询后
    没人顶 → 通知被系统清掉即彻底消失。两版同一病根,v2.22.11 只是暴露了它。
  • 修复:前台媒体服务生命周期跟随"媒体会话"而非"播放/暂停"——update() 无论
    播放暂停都 MediaControlService.start()(幂等),服务从首次播放一直保持到真正停止
    (hide() / 退出)。暂停态通知成为系统级常驻前台媒体通知(网易云等标准行为):
    不被清理、无 ongoing 翻转、不闪烁。pushNow()(通知授权回调)同步为"有内容即保
    持前台"。JS 端 v2.22.11 的"暂停跳过 500ms 轮询"保留(现在无需续命,纯省电)。

② 小窗关闭残留(Java 原生)

  • 根因:音频在 WebView,Activity 被销毁(小窗 × / 划掉任务 / 返回退出)即播放
    终止,但 MediaControlService(前台服务)无人通知停止 → 通知/服务残留,
    只能去应用信息强停。
  • 修复:MainActivity.onDestroy() 中 isFinishing() 为 true 时调用新增的
    MediaSessionPlugin.cleanupForExit():停服务 + 撤通知 + session 停用,干净退出。
    Home 键回桌面仅 onStop 不销毁,后台播放不受影响。

装机

  • Android 平板,pm install -r 覆盖安装 Success(保留数据)。
  • dumpsys 确认 versionCode=53 / versionName=2.22.12。

待实测

  1. 播放 → 暂停(通知栏按钮 & 锁屏):通知是否不再消失、不再"收起→重弹"。
  2. 小窗:播放中划小窗 → 展开 → 关闭:是否干净退出(通知撤、播放停),无需强停。
  3. 原子岛:**设置→通知与状态栏→原子岛→开「显示原子通知」**后播放,是否上岛
    (v2.22.12 起播放/暂停都保持前台媒体服务,上岛条件比以往更充分)。