Skip to content

1.4.0:SMTC 补齐按钮与封面(引 WinRT 投影)+ 外挂封面 + 修「播放列表对不上」

Choose a tag to compare

@non266 non266 released this 10 Oct 15:01
· 63 commits to main since this release

1.4.0 · 系统媒体控件补完 + 一条列表显示错的修复

1.3.0 里说好"只做了一半"的那一半(SMTC 的按钮与封面)这一版补上;另外修掉所有者截图报上来的
"播放列表对不上"。全量冒烟仍是 20 步。

系统媒体控件(SMTC)补完(Win 键调出的音量弹窗 / 锁屏上那一块)

  • 五个按钮:播放 / 暂停 / 停止 / 上一个 / 下一个 —— 真的接上了,按下去作用在播放上。
  • 封面:优先用文件里的内嵌封面,没有就用同目录的 cover.jpg / folder.jpg / front.jpg
    这类外挂图(和侧栏封面是同一份判定:cover > folder > front > album …,
    不再看文件系统的枚举顺序);切到没有封面的那一首会清掉,不会还挂着上一首的。
  • 为此目标框架改成 net8.0-windows10.0.19041.0,SMTC 那一段从"手写 COM"换成 WinRT 投影。
    ⚠ 代价如实说明:要 Windows 10 2004(19041)以上才有完整能力;更老的系统上程序照常启动,
    只是这一段拿不到接口(安静降级,媒体键与任务栏缩略图按钮不受影响)。
    安装包 / 便携版因此大了 3.5 ~ 5.7 MB(多了投影程序集)。

顺手修掉的一个真 bug(所有者截图报的"播放列表对不上")

  • 列表里加粗的"正在播"那一行停在上一首:真正在播的是下一首,标题栏 / 状态栏 / 时长都对,
    只有那一行不动。根因是"列表当前项变了 → 整体重建列表"发生在引擎换过去之前,
    重建时引擎路径还是上一首。现在换歌时只把那一行挪过去(O(1),不重建列表)。

已知问题(这一版没修,如实写在这里)

  • 画面旋转换 libvlc 内核时偶发原生崩溃(0xC0000005,整个进程直接没):1.4.0 验收期间
    全量冒烟 5 次里崩了 3 次,都在"连着切几种旋转、紧接着切歌"这一步(第七次切换、
    第一次复用已经缓存的内核);单独跑旋转检查连跑 3 次没崩,机制还没查清,
    记在维护手册的 M8(先做复现探针,再动切换顺序)。
    用户碰得到的路径:把六种旋转挨个点一遍、紧接着按「下一个」。
  • 没有代码签名:安装包与便携版都是未签名的,SmartScreen 会提示"未知发布者"
    (点"更多信息 → 仍要运行")。

验证到哪一层

  • 冒烟 20 步全绿,两个产物各自在自己的目录里都跑过全量(便携版一次过关;
    安装版第三次复跑过关,前两次一次是上面那个原生崩、一次是桌面歌词真鼠标判据的环境敏感)。
  • ⚠ SMTC 有一半只能人眼看:系统界面上按钮画出来没有、按下去系统有没有把事件送过来,
    冒烟验不到(它验的是"我们这一侧的事件 → 动作"以及"交给系统的那个文件被系统读了")。

安装与校验

  • 安装程序:每用户安装、免 UAC,装到 %LocalAppData%\Programs\全能本地播放器;
    卸载不删 %AppData%\播放器(设置 / 历史 / 歌单 / 设置方案 / 字体)。
  • 便携版:解压即用,不写注册表。
  • SHA256:
    • local-player-1.4.0-setup.exe:51F8B599DBD100FD92A40B19C5935B0C1A0F8A7622BC1F2F1BF35EFD635C25F1
    • local-player-1.4.0-portable.zip:E3AC2DD7A8CAAAFD02E505F1E221D4555C8887F04250E87BDAD2276816F9F8EF