#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. Если я перемещаю его, игра не работает