ArcadiA Club
ArcadiA Club


AAC FORUM     AAC News     AAC Box    



Home Page   Home Page
crearegame.htm   Game Creation - FORUM sezione  Vai al FORUM
 
Username:
Password:
Iscriviti!  |  Recupero password



Iscriviti GRATIS, potrai navigare senza questa
fascia e accedere a contenuti esclusivi:

    E-Mail:

Password:



 

 
- Un semplice player video in XNA -
 
COSA SERVE PER QUESTO TUTORIAL
Download | Chiedi sul FORUM | Glossario cognizioni basiche di C# e sul framework XNA
Come gestire la riproduzione di un video in XNA

DISEGNARE UN VIDEO
Come servirsi del namespace Microsoft.Xna.Framework.Media per riprodurre video.

In questo tutorial vedremo come realizzare un semplice player video con XNA, dotato di tasti Play/Resume e Stop. Principalmente ci serviremo delle classi VideoPlayer e Video all'interno di Microsoft.Xna.Framework.Media. In sostanza si tratta di caricare un video in formato WMV in un oggetto Video, avviare la riproduzione con VideoPlayer e nella funzione Draw utilizzare il metodo VideoPlayer.GetTexture per ottenere il frame corrente. Tutto il resto è solo un po' di logica per gestire i pulsanti (per la quale è disponibile una classe da ampliare e riutilizzabile).
Per prima cosa nella nostra classe Game (VideoPlayerGame) dichiariamo il VideoPlayer e il Video:


// Il riproduttore di video
Microsoft.Xna.Framework.Media.VideoPlayer player = new Microsoft.Xna.Framework.Media.VideoPlayer();
// Il video da riprodurre
Video testVideo;

In LoadContent carichiamo il video dal ContentManager e inizializziamo il rettangolo dove l'output grafico verrà disegnato su una porzione dello schermo:


protected override void LoadContent()
{
    // ...

    // Inizializziamo l'area di disegno su tutto le schermo eccetto i tre pulsanti
    videoRectangle = new Rectangle(0, 0, this.GraphicsDevice.Viewport.Width, 
        this.GraphicsDevice.Viewport.Height - 60);

    // Creiamo lo SpriteBatch e carichiamo il video
    spriteBatch = new SpriteBatch(GraphicsDevice);
    testVideo = this.Content.Load<Video>("video");

}

Per rendere il player un po' più interattivo facciamo in modo che quando si fa click destro nell'area di gioco la dimensione dell'area in cui viene disegnato il video cambia conseguentemente:


protected override void Update(GameTime gameTime)
{
    // ...

    // La pressione del tasto destro del mouse ridimensiona 
    // l'area di disegno
    MouseState mouseState = Mouse.GetState();
    if (mouseState.RightButton == ButtonState.Pressed)
        videoRectangle = new Rectangle(videoRectangle.X, videoRectangle.Y,
            mouseState.X, mouseState.Y);

    // ...
}

Quindi, nel metodo Draw disegniamo il video nel rettangolo stabilito:


protected override void Draw(GameTime gameTime)
{
    // ...

    // Se il video non è in stop
    if (player.State != MediaState.Stopped)
    {
        spriteBatch.Begin();
        // Disegnamo il frame corrente
        spriteBatch.Draw(player.GetTexture(), videoRectangle, Color.White);
        spriteBatch.End();
    }

    // ...
}

Semplicemente se il video è in pausa o in esecuzione chiamiamo il metodo SpriteBatch.Draw passandogli come parametro il risultato di VideoPlayer.GetTexture che restituisce il frame corrente in forma di Texture2D.
Avviare e interrompere la riproduzione è banale (in VideoPlayer sono disponibili i classici metodi Play, Pause, Resume e Stop) e rimandiamo al sorgente dell'esempio associato per ulteriori dettagli.

 

<< INDIETRO by VeNoM00  


Video collegati Visualizza i video di questa pagina
Visualizza video sull'argomento "video".
Visualizza video sull'argomento "videoplayer".
Visualizza video sull'argomento "bottoni".
Visualizza video sull'argomento "video videoplayer bottoni".


Dì la tua: cosa ne pensi?
Esponi il tuo punto di vista e condividilo con migliaia di persone

Oggetto nuova discussione:


Testo del messaggio:

E-Mail:

Quanto fa più dieci:




 





^ TOP  
Linkaci | Segnala errore | Invita | Stampa


pubblicità | privacy | visione | diritti | ufficio stampa | donazioni | scrivici
© 1999-2023 - P.IVA 02284690035 - Grafica, layout e contenuti sono di esclusiva proprietà di ArcadiA Club.

Powered by:
Spazi pubblicitari di alto livello
 

Compra in un click! | Cerca prodotti in offerta: