Как уже упоминалось в Aphid, вы можете изменить образец загрузки содержимого winform .
Чтобы заставить его принимать WMV, вам нужно изменить его следующим образом:
Добавление VideoImporters в массив сборок в ContentBuilder.cs:
static string[] pipelineAssemblies =
{
"Microsoft.Xna.Framework.Content.Pipeline.FBXImporter" + xnaVersion,
"Microsoft.Xna.Framework.Content.Pipeline.XImporter" + xnaVersion,
"Microsoft.Xna.Framework.Content.Pipeline.TextureImporter" + xnaVersion,
"Microsoft.Xna.Framework.Content.Pipeline.EffectImporter" + xnaVersion,
"Microsoft.Xna.Framework.Content.Pipeline.VideoImporters" + xnaVersion
};
Затем в MainForm.cs изменить
contentBuilder.Add(fileName, "Model", null , "ModelProcessor");
до
contentBuilder.Add(fileName, "Video", "WmvImporter" , "VideoProcessor");
Затем вам нужно будет воспроизвести видео, используя метод, описанный в Воспроизведение видео на поверхности
Этот метод работает только с ошибкой, используя версию 3.1 примера загрузки контента; в XNA 4, как я описал, выдает ошибку Pinvoke . Я отправил сообщение на форумы XNA в надежде найти решение этой проблемы.
РЕДАКТИРОВАТЬ: я получил следующий ответ от разработчика XNA Framework в отношении исключения pinvoke:
Вы можете спокойно проигнорировать это предупреждение.
Этот MDA включен по умолчанию
VS2010, чтобы указать потенциальные перфект
проблемы для pinvokes, которые не имеют
объявлено явное соглашение о вызовах.
Это раньше было отключено по умолчанию
VS2010 так вот почему ты его не видел
в 3.1. Мы обнаружили это немного
слишком поздно в игре GS4, чтобы заставить его пойти
далеко, но по существу нет проблем
с функциональностью. Вам следует
ударить только тогда, когда вы
разработка / отладка вашего кастома
процессоры. Это понятно
раздражает, и вы можете выключить его
вдаваясь в Debug-> Исключения-> Управляемый
отладка
Assistants-> PInvokeStackImbalance. Мы
заставит это уйти на следующий
релиз.