Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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); }