2013-03-29 5 views
4

В моем проекте 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'

мне нужно 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; 
       } 
      } 
     } 
    } 
} 
+1

Только одно предложение у меня есть - вы можете попробовать загрузить этот тип с отражением, это только один способ, который я знаю, вы можете указать, что вы хотите загрузить тип из определенной dll. – outcoldman

+0

Можете ли вы дать мне пример типа использования, который создается после отражения использования? –

+0

Что такое 'Game1.Video' в этом случае? – GalacticCowboy

ответ

1

Я думаю, что у меня есть лучшее решение для вас, что отражение. Вы должны создать отдельную сборку, которая будет иметь ссылку только на сборку, которую вы хотите использовать (Microsoft.Xna.Framework.Video.dll). Вы можете написать оболочку для типа Microsoft.Xna.Framework.Media.Video. Ваша оболочка должна раскрывать все функциональные возможности, которые вы хотите использовать в своем приложении. Итак, теперь эта новая сборка может разрешить правильный тип, потому что у него есть только один из них. Ваше приложение не обязательно должно знать об этом конфликте, потому что оно будет использовать ваш тип.

+0

, можете ли вы привести мне пример, пожалуйста? С классом видео. Потому что я пытаюсь это сделать, но я не понял, что я должен писать. Спасибо в совет. –

+0

Не могли бы вы показать, что вы сделали и что не сработало для вас? – outcoldman

+0

Я создаю новый проект dll с vs2012: public class PlayVideo { private Video _video; частный Microsoft.Xna.Framework.Media.VideoPlayer _player; имя частной строки = "openClip"; общественный PlayVideo() { _video = новое видео («Я не знаю, что я здесь здесь ... (графическое устройство)», имя, 50, 426, 240, 29, «Я не знаю что я здесь ... (VideoSountrackType) "); _player = new Microsoft.Xna.Framework.Media.VideoPlayer(); } Другая проблема заключается в том, что видео vostructor дает мне ошибку. –