Как я могу воспроизвести видео в XNA?

#c# #video #xna

#c# #Видео #xna

Вопрос:

Я хочу воспроизвести видео, когда я перехожу в раздел «Кредиты», и после завершения видео оно перестанет воспроизводиться и автоматически перейдет в главное меню (или перейдите туда при нажатии Escape ).Я также пытался воспроизвести его в update методе, но он не работает, потому что я получаю сообщение об ошибке (это не ошибка кода). Мой код:

 int count==0;//the variable from main menu
Video vid;
VideoPlayer vidPlayer;
Texture2D texture;
Rectangle vidRect;

Initialize()
{
    vidPlayer=new VideoPlayer();
}


LoadContent()
{
    vid=Content.Load<Video>("credits");
    vidPlayer.Play(vid);// Can I play it in Update methd?
    vidRect= new Rectangle(0,0,800,600);
}

Update()
{
    //stuffs...

    if(count==5)
    {
        //if I press enter
        {
            count=6;
            //I want to play it here

            //if it finishes 
            {
                count=5;
            }

            //if I press Escape
            {
                count=5;
                //stop videoplayer
            }
        }
    }        

    //stuffs...
}

Draw()
{
    texture = vidPlayer.GetTexture();
    //stuffs..
    if(count==6)
    {
        spriteBatch.Draw(texture,vidRect,Color.White);
    }
}
  

Он работает, но воспроизводится сразу, когда я запускаю игру. Могу ли я управлять им так же, как я могу управлять звуком, как SoundEffectInstance? Есть ли что-нибудь и для видео?

Я решил эту проблему!! Я ввел в метод обновления следующий код:

 if(count !=5)
{
    vidPlayer.Stop();
}

if(count==5)
{
    vidPlayer.Play(vid);
}
  

Сначала это не работало, потому что я удалил его из LoadContent и поместил его непосредственно в update.

Комментарии:

1. Переместите метод vidPlayer.Play(vid); внутри Update и не воспроизводите его, если он уже воспроизводится.

2. Если я перемещаю его, игра не работает