You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Media Player在Win10 1809 LTSC下内存泄漏问题求解决方案

Windows 10 IoT LTSC 1809 WMP.dll 循环播放内存泄漏排查方案

一、内存泄漏根源定位

  • 优先使用VMMap、DebugDiag工具抓取内存快照,确认泄漏内存的归属:排查是WMP.dll的非托管堆泄漏、GDI对象泄漏,还是音视频帧缓冲未正常释放,重点关联每次循环播放后残留内存块的调用栈,确认是否指向WMP.dll内部的解码、渲染逻辑。

二、代码层面规避方案

  • 不要复用同一个WMP控件实例做循环播放,每轮播放结束后先显式调用close()方法释放资源,再销毁控件句柄,重新实例化WMP控件后加载媒体文件触发下一轮播放,禁止仅调用controls.play()做循环触发。
  • 若使用axWindowsMediaPlayer封装控件,每轮播放结束后手动设置URL = null强制释放关联媒体资源,再重新赋值媒体路径完成重载。
  • 关闭WMP冗余配置项:设置settings.autoStart = false、settings.bufferTime = 1,减少缓冲内存的不必要累积。

三、系统层面修复尝试

  • 检查1809 LTSC版本的WMP专项补丁安装情况:KB5003171、KB4561600均为微软官方发布的WMP内存泄漏修复补丁,你当前使用的12.0.17763.1821版本WMP对应2021年4月的系统更新,可单独安装上述补丁无需升级系统大版本。
  • 若补丁安装后问题仍存在,尝试将应用程序的运行兼容模式指定为Windows 10 1607版本,绕过当前WMP版本的逻辑缺陷。

四、底层调用优化方案

  • 绕过默认的WMP控件封装,直接调用WMP底层COM接口IWMPPlayer、IWMPMedia手动管理资源生命周期,每轮播放结束后显式调用Marshal.ReleaseComObject()释放所有关联COM对象,避免引用计数泄漏导致内存无法回收。

内容的提问来源于stack exchange,提问作者Gforse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:27:06