ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MPC-HC 2.3.4 封面变形修复指南:2分钟自查

MPC-HC 2.3.4 封面变形修复指南:2分钟自查

MPC-HC 2.3.4 封面变形修复指南:2分钟自查

【免费下载链接】mpc-hcMedia Player Classic项目地址: https://gitcode.com/gh_mirrors/mp/mpc-hc

MPC-HC 2.3.4 播放带内嵌专辑封面的音频时,封面会被拉得比例失调、边缘发虚,拖动播放器窗口放大缩小,封面却"钉"在原地不跟着变。开发团队已在最新代码中定位根因并完成修复,将随下个正式版本放出。这篇指南讲清三件事:发生了什么、为什么、你现在能做什么。

封面拉伸、发虚还是钉在原地:确认中招

此问题只出现在纯音频播放场景(视频画面不受影响),三个症状逐条核对:

症状怎么复现
封面被拉宽或压扁播一首内嵌封面的曲目,看图片比例
边缘锯齿、细节发糊放大看封面里的文字和标志
封面不跟窗口缩放 ⚠️把窗口拖大拖小几次,观察封面是否随之重排

命中两条以上基本可以确认中招。用 2.3.3 的用户不受影响,不用排查。

拖窗口时封面为什么不动:一条尺寸传递链

关键在于:MPC-HC 播放纯音频时,把封面当成"视频"来定窗口大小。尺寸要经过三级传递——封面图像像素尺寸 → "封面尺寸上限"(高级设置页可改,默认 600 像素)→ 播放器窗口最小尺寸。任何一环传错,窗口就是按错误尺寸算出来的,封面自然摆不正。这就像把照片放进一个报错了尺寸的相框,怎么摆都歪。

尺寸定了之后,封面还要被缩放到视图区域。2.3.4 的缩放链路在改动中退化,本该用高质量插值缩放,实际走了更粗糙的捷径——好比把一张点阵海报喷绘到不同尺寸的展板上,算法决定接缝藏不藏得住。高 DPI 又叠了第二层换算:显示缩放 150% 的屏幕上,报给系统的坐标和实际画出的像素对不上,位置更容易算错。

封面数据则只从音轨读取一次、留在内存里复用,这次改动也动过图像资源的处理方式。省这一步本身没错,但下游传递链断掉时,显示就乱。相关代码在 CoverArt.cpp(找封面)和 MouseWndWithArtView.cpp(缩放渲染)。

上图是 MPC-HC 内置重采样库的滤波响应曲线,与图像缩放同理:选高质量插值,接缝藏得住;选廉价的,点阵直接裸露。

修复怎么做:三个断点三处修补

最新代码对这条传递链做了三处修复:缩放恢复为高质量半色调插值(当前仓库代码已用STRETCH_HALFTONE渲染,且视图尺寸变化时会自动重缩放);补齐高 DPI 下的尺寸换算,让窗口与封面坐标对齐;修正从封面容器到窗口的整条尺寸传递,拖窗时能正确触发重排。同时调整了图像资源加载方式,消除缓存带来的副作用。修复已合入最新代码,等正式版本即可。

等不到更新?4件事先做

  1. ✅ 盯紧官方发布渠道,一有含修复的版本就升级,这是最干净的解法;
  2. 把 Windows 显示缩放临时调回 100%(设置 → 系统 → 显示),封面立刻正常说明 DPI 是主因;
  3. 换标准正方形封面再试:在歌曲同目录放一张名为cover.png或front.png的方形图,播放器会自动查找,可排除异形图干扰;
  4. 仍不正常再考虑重置播放器设置:用/reset命令行参数启动会清空全部设置恢复默认(设置存储与重置机制详见 docs/settings-versioning.md)。

另外,高级设置页里的"封面尺寸上限"也可以调小观察窗口是否跟着变,有助于判断卡在哪一环。

下个正式版本落地,这块视觉瑕疵就翻篇了——封面会重新乖乖跟着窗口走。

【免费下载链接】mpc-hcMedia Player Classic项目地址: https://gitcode.com/gh_mirrors/mp/mpc-hc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进