4

私の Monogame プロジェクトでは、ビデオを再生する必要があります。このために、私はクラスを使用Video ClassVideoPlayerます。しかし、ソリューションを開始すると、VS から次のエラーが表示されます。

エラー 1 タイプ 'Microsoft.Xna.Framework.Media.Video' は 'c:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework の両方に存在します.Video.dll」および「c:\Program Files (x86)\MonoGame\v3.0\Assemblies\WindowsGL\MonoGame.Framework.dll」

VideoPlayerビデオを再生するには、Microsoft.Xna.Framework.Video.dll にあるクラスが必要です。

この問題を解決するにはどうすればよいですか?

これが役立つ場合は、ビデオを再生したいという私のコードです:

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;
                }
            }
        }
    }
}
4

1 に答える 1

1

その反省に対して、より良い解決策があると思います。使用するアセンブリ (Microsoft.Xna.Framework.Video.dll) への参照のみを持つ別のアセンブリを作成する必要があります。タイプ Microsoft.Xna.Framework.Media.Video のラッパーを作成できます。ラッパーは、アプリケーションで使用するすべての機能を公開する必要があります。したがって、この新しいアセンブリは適切な型を解決できます。アプリケーションは型を使用するため、この競合について知る必要はありません。

于 2013-04-02T17:16:49.353 に答える