c# - 视频类存在于两个库中

标签 c# video monogame video-player

在我的 Monogame 项目中,我需要播放视频。为此,我使用了 Video ClassVideoPlayer 类。但是当我开始解决方案时,VS 给我这个错误:

Error 1 The type 'Microsoft.Xna.Framework.Media.Video' exists in both 'c:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Video.dll' and 'c:\Program Files (x86)\MonoGame\v3.0\Assemblies\WindowsGL\MonoGame.Framework.dll'

我需要 Microsoft.Xna.Framework.Video.dll 中的 VideoPlayer 类来播放视频。

我该如何解决这个问题?

如果对我有帮助,这是我想播放视频的代码:

namespace play
{
    public class PlayVideoClass
    {
        private readonly  Microsoft.Xna.Framework.Media.Video _video;
        private readonly Microsoft.Xna.Framework.Media.VideoPlayer _player;
        private bool _playVideo;

        public PlayVideoClass()
        {
            _video = Game1.Video;
            _player = new Microsoft.Xna.Framework.Media.VideoPlayer();
            _playVideo = true;
        }
        public void Update()
        {
            if (_playVideo)
            {
                if ((int) _player.State == (int)Microsoft.Xna.Framework.Media.MediaState.Stopped)
                {
                    _player.Play( _video);
                    _playVideo = false;
                }
            }
        }
    }
}

最佳答案

我认为我有更好的解决方案供您引用。您应该创建单独的程序集,该程序集将仅引用您要使用的程序集 (Microsoft.Xna.Framework.Video.dll)。您可以为类型 Microsoft.Xna.Framework.Media.Video 编写包装器。您的包装器应该公开您要在应用程序中使用的所有功能。所以现在这个新程序集可以解析正确的类型,因为它只有其中一个。你的应用程序不需要知道这个冲突,因为它会使用你的类型。

关于c# - 视频类存在于两个库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15701446/

相关文章:

c# - MonoGame中的简单2D照明

visual-studio-2012 - 如何启动适用于 Windows 桌面(以及 future 端口)的 MonoGame 项目?

c# - 什么是根目录或如何在 DotNetZip 中设置目录

c# - 通过 Office Automation 支持不同的 Office 版本

javascript - flash视频播放器如何变成全屏

c++ - 视频混合渲染器 9 (VMR9) : get FPS from the input pin's AM_MEDIA_TYPE

c# - 如何在 nlog.config 中设置 debugEnabled/InfoEnabled

c# - 在类中并行运行 NUnit 测试但不与其他类测试一起运行的方法?

javascript - popcorn.js 可以检测切换视频并继续而不重新启动吗?

xamarin - 将 Monogame View 添加到 Xamarin Storyboard for iOS