Visão Geral Conforme anunciado pelo XNA Team o XNA GS 3.1 foi liberado trazendo muitas novidades, entre elas o tão esperado suporte a reprodução de videos. Isso mesmo agora podemos adicionar videos na abertura de nossos Games, ou em telas de transição ou até mesmo em pequenas animações durante a execução dos nossos jogos. Neste artigo vou mostrar de forma simples e objetiva como adicinar um video no seu XNA Game. Vamos la. Esse conjunto de APIs do XNA Framework suporta as seguinte caracteristicas: - Reprodução de video em tela cheia.
- Reprodução de video como simples texturas no jogo.
- Um controle de reprodução como Pausar/Reiniciar e parar.
- Recuperação de propriedades do vídeo, tais como tempo de reprodução, tamanho e taxa de quadros.
- Podemos determinar o tipo e o uso da Faixa de áudio, como se tem música, de diálogo, ou de música e de diálogo.
- Reproduzir múltiplas sequências de vídeo ao mesmo tempo.
Adicionando video Para começar, basicamente usaremos novos objetos que foram adicionados ao Framework: Video e VideoPlayer. Então a primeira coisa que devemos fazer é declarar nossos variaveis do tipo Video e VideoPlayer. // Representa um video. Video umVideo; // Fornece métodos e propriedades para reproduzir, pausar, continuar e parar o vídeo.
VideoPlayer umVideoPlayer = new VideoPlayer(); Em seguida precisamos carregar nosso conteúdo de video, da mesma forma que fazemos com nossas texturas/modelos no método LoadContent(). protected override void LoadContent()
{
this.umSpriteBatch = new SpriteBatch(GraphicsDevice); // Carrega o conteúdo video. this.umVideo = Content.Load<Video>("video"); // Executa o objeto video carregado a cima no VideoPlayer.
this.umVideoPlayer.Play(this.umVideo);
} Obs: Note a semelhança entre o carregamento de suas texturas e o carremento de um video.
Finalizando só nos falta renderizar o video na tela, mais simples que isso só adicionando um code snipe ao nosso visual studio. Para renderizar é facil basta usar o metodo Draw() do objeto SpriteBatch, da mesma forma que fazemos com nossa texturas. Só com uma detalhe a mais, antes de renderizar precisamos capiturar a textura do video e adicionar a um objeto Texture2D, eu sei ficou confuso mas veja no código abaixo que descomplica tudo. protected override void Draw(GameTime umGameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue); // Captura a textura do VideoPlayer
Texture2D umaTextura = this.umVideoPlayer.GetTexture(); // Inicializa o SpriteBatch
this.umSpriteBatch.Begin(); // Desenha a textura
this.umSpriteBatch.Draw(umaTextura, new Rectangle(0, 0, 800, 600), Color.White); // Finaliza o SpriteBatch
this.umSpriteBatch.End(); base.Draw(umGameTime);
} Pronto, conforme combinei de forma simples e pratica neste artigo mostrei como se adiciona um video a seu game, agora usem da nossa criatividade e aproveitem ao maximo esse novo recurso do XNA Game Studio 3.1. Obrigado e até a próxima. |