Playing a Video
Demonstrates how to use the VideoPlayer to play a video.
Complete Sample
The code in this topic shows you the technique for playing a video. You can download a complete code sample for this topic, including full source code and any additional supporting files required by the sample.
Download VideoPlayback_Sample.zip
Playing a Video
To play a video
Add a video to the game project using the steps outlined in loading resources.
In LoadContent, load the video using the ContentManager.
Create a new instance of the VideoPlayer.
Video video; VideoPlayer player; Texture2D videoTexture; protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); video = Content.Load<Video>("video"); player = new VideoPlayer(); }
In the Update method, play the video.
Tip
Set IsLooped to true if you want the video to repeat.
protected override void Update(GameTime gameTime) { ... if (player.State == MediaState.Stopped) { player.IsLooped = true; player.Play(video); } ... base.Update(gameTime); }
In Draw, if the VideoPlayer is not stopped, call GetTexture to get a copy of the latest frame of video.
Create a Rectangle defining where on-screen the video will appear.
If the texture is not null, draw it on-screen using SpriteBatch.Draw.
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // Only call GetTexture if a video is playing or paused if (player.State != MediaState.Stopped) videoTexture = player.GetTexture(); // Drawing to the rectangle will stretch the // video to fill the screen Rectangle screen = new Rectangle(GraphicsDevice.Viewport.X, GraphicsDevice.Viewport.Y, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height); // Draw the video, if we have a texture to draw. if (videoTexture != null) { spriteBatch.Begin(); spriteBatch.Draw(videoTexture, screen, Color.White); spriteBatch.End(); } base.Draw(gameTime); }