Winform应用集成Windows Media Player播放视频异常如何解决
修复方案
- 修正视频路径引用逻辑
你当前使用相对路径赋值URL的方式存在缺陷,WinForm运行时的默认工作目录不一定等于exe所在目录,调试阶段工作目录默认指向项目根目录,会导致WMP找不到对应视频文件,这也是触发C00D1179错误的核心原因。请将播放代码替换为如下逻辑,拼接exe同目录的绝对路径:
using System.IO; using System.Reflection; private void button1_Click(object sender, System.EventArgs e) { // 准确获取当前可执行文件所在目录 string exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string fullVideoPath = Path.Combine(exePath, "video delphi.mp4"); axWindowsMediaPlayer1.URL = fullVideoPath; }
同时请确认video delphi.mp4文件已经存放在编译输出目录(调试阶段为bin/Debug、发布阶段为bin/Release),如果文件放在项目根目录,可在VS的文件属性面板中将「复制到输出目录」选项设置为「如果较新则复制」,避免每次手动拷贝。
- 修复无画面/控件空白问题
- 打开项目属性页,在「生成」选项卡中检查平台目标设置:如果你使用的是64位系统,建议取消「首选32位」勾选,或者固定平台目标为x86/x64,避免COM组件调用时的架构不匹配问题
- 在窗体Load事件中添加如下配置,强制视频适配控件尺寸:
private void Form1_Load(object sender, EventArgs e) { axWindowsMediaPlayer1.stretchToFit = true; axWindowsMediaPlayer1.windowlessVideo = true; }
- 如果修改路径后仍只有音频无画面,说明系统自带的Windows Media Player缺少对应MP4格式的解码器,安装主流Windows解码器包即可解决。
- 验证排查逻辑
如果修改后仍有报错,可以先将路径替换为本地磁盘上存在的任意视频的完整绝对路径测试播放效果,确认WMP控件本身工作正常后再排查路径、文件权限相关问题。
内容的提问来源于stack exchange,提问作者Alex_Pap
相关产品推荐
相关产品推荐

