在我的 Monogame 项目中,我需要播放视频。为此,我使用了 Video Class
和 VideoPlayer
类。但是当我开始解决方案时,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/