Artigo
Novos recursos do XNA 3.1 : Reprodução de videos
O XNA Game Studio 3.1 agora possue suporte a tão esperada reprodução de videos. Nesse artigo vou mostrar de forma simples e prática de como você pode usar esse recurso em seus jogos.
Enviado por Kellyson Santos em 12/6/2009 0:00:00

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.


Sobre o Autor

kellyson
Kellyson Santos
Não Definido

Clique para avaliar:

Comentários
" Parabéns pelo artigo Kellyson. XNA é muito bom e muito fácil de aprender - estou estudando aos poucos e essa possibilidade de adicionar vídeos é muito simples mesmo. Mais complicado é entender o "for" quando estamos pagando lógica de programação :)"
Enviado por Sérgio Oliveira em 13/6/2009 18:25:44:
 
" Fala Victor, a princípio só WMV."
Enviado por Kellyson Victor em 12/6/2009 17:08:29:
 
" Mto bom kra! Mto bom mesmo! Só fiquei com uma dúvida... Quais formatos de video o XNA 3.1 aceita (ainda não mexi nele =/ )"
Enviado por Victor Peres em 12/6/2009 14:42:16:
 

Adicione seu Comentário  Voltar
Translator
Logos do XBox 360, XNA e Games For Windows
Copyright 2010 por SharpgamesPolítica de Privacidade  |  Termos de Uso