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

WPF中MediaElement无法播放相对路径MP4视频问题求助

问题原因

你遇到的问题核心有两个:

  1. MediaElement的相对路径默认基于程序运行的工作目录(默认是bin/Debug/bin/Release文件夹),而非解决方案根目录,你的视频文件没有被自动复制到运行目录下,导致相对路径无法定位到文件
  2. MediaElement底层依赖Windows Media Player组件,不支持直接读取嵌入到程序集的资源文件,必须以松散文件形式存在于磁盘中才能加载
    你现有XAML配置无需修改,问题完全出在路径逻辑和文件属性设置上。

解决步骤

  • 第一步:设置视频文件的生成属性
    在解决方案资源管理器中找到DiceMovies文件夹下的Dice_2.mp4,右键点击选择「属性」,修改两个配置:
    • 「生成操作」设置为无
    • 「复制到输出目录」设置为如果较新则复制
      修改完成后重新编译项目,手动确认bin/Debug/DiceMovies/Dice_2.mp4文件存在
  • 第二步:调整路径加载逻辑
    不推荐直接使用相对Uri,程序运行过程中工作目录可能被修改(例如打开文件对话框后工作目录会变更),容易导致路径失效,建议直接拼接运行目录生成绝对路径:
    // 获取程序运行的根目录
    var runDir = AppDomain.CurrentDomain.BaseDirectory;
    // 拼接得到视频的完整路径
    var videoFullPath = Path.Combine(runDir, @"DiceMovies\Dice_2.mp4");
    VideoDice.Source = new Uri(videoFullPath, UriKind.Absolute);
    VideoDice.Height = 500;
    VideoDice.Width = 500;
    VideoDice.Play();
    

如果一定要用相对Uri,确保工作目录正确的前提下,原来的写法在文件复制到输出目录后也能正常运行,但稳定性不如拼接绝对路径的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:45:03