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

MonoGame中使用VideoPlayer加载视频时遇ContentLoadException错误求助

在MonoGame中加载Video时遇到ContentTypeReader找不到的问题解决方法

问题根源

手动引用Microsoft.Xna.Framework.Video.dll的方式不符合MonoGame的组件依赖逻辑,视频功能需要配套的内容处理器和正确的程序集引用支持,直接添加独立dll会导致内容加载时无法找到对应的VideoReader类型。另外,内容项目中视频文件的处理器设置错误也会触发该异常。

解决步骤

  1. 替换手动dll引用为NuGet包
    删除手动添加的Microsoft.Xna.Framework.Video.dll引用,通过NuGet安装对应平台的MonoGame官方包:

    • 桌面GL项目:安装MonoGame.Framework.DesktopGL
    • WindowsDX项目:安装MonoGame.Framework.WindowsDX
      这些包会自动包含视频相关的所有必要程序集和内容处理器,避免版本不匹配问题。
  2. 检查内容项目中视频文件的属性
    打开你的Content项目,找到main_intro.mp4文件,右键设置属性:

    • 生成操作:设为Content
    • 复制到输出目录:设为如果较新则复制
    • 内容处理器:选择Video - MonoGame(若没有该选项,说明NuGet包未正确安装,需重新部署)
  3. 补充渲染逻辑(可选但必要)
    视频播放后需要在Draw方法中绘制帧画面,示例代码:

    protected override void Draw(GameTime gameTime)
    {
        graphics.GraphicsDevice.Clear(Color.Black);
        if (videoPlayer.State == MediaState.Playing)
        {
            spriteBatch.Begin();
            spriteBatch.Draw(videoPlayer.GetTexture(), Window.ClientBounds, Color.White);
            spriteBatch.End();
        }
        base.Draw(gameTime);
    }
    

额外注意事项

  • 确认活动解决方案平台(x86)与NuGet包的目标平台一致,避免架构不兼容。
  • 若为Devcade平台项目,核心视频加载逻辑遵循MonoGame通用规则,无需额外特殊配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:43:22