Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida al Visual Basic .NET - Giocare con i file multimediali

Guida al Visual Basic .NET

Capitolo 103° - Giocare con i file multimediali

<< Precedente Prossimo >>

Per poter riprodurre Audio e Video è possibile usare una libreria del Framework, raggruppata nel namespace delle DirectX. Per questo motivo bisogna prima installare le librerie microsoft DirectX: in molti compilatori sono già incluse nel pacchetto, ma per chi non le possedesse e avesse bisogno di un link di riferimento, si possono scaricare anche qui nella loro release del Giugno 2007. Dopo aver importato nel progetto gli opportuni riferimenti a Microsoft.DirectX e Microsoft.DirectX.AudioVideoPlayback tramite il menù Add Reference del solution explorer, e scritto le opportune direttive di importazione in cima al codice, diventano disponibili le due classi Audio e Video. Entrambi i costruttori accettano il percorso del file multimediale da aprire: supportano anche percorsi url web, ed è quindi possibile riprodurre file in streaming. Una volta inizializzati gli oggetti, si possono ottenere moltissime proprietà interessanti, ed altrettanti metodi. Eccone una lista:
  • CurrentPosition : la posizione corrente nel contesto di riproduzione, espressa in secondi
  • Duration : la durata complessiva del file, sempre in secondi
  • FromFile / FromUrl : funzioni statiche che inizializzano un nuovo oggetto Audio o Video a partire dal percorso HD o Web specificato
  • Open(F) : apre il file F nell'oggetto corrente (F può essere una stringa o un Uri, Unique Resource Identifier). Questa è una procedura che può essere usata nel caso non si voglia creare un ulteriore oggetto per ogni nuovo file
  • Pause : mette in pausa la riproduzione
  • Paused : determina se la riproduzione è stata messa in pausa
  • Play : riproduce il file multimediale
  • Playing : determina se il file è in riproduzione
  • SeekCurrentPosition(T, F) : cambia la posizione corrente all'interno del file. T è la posizione desiderata, in secondi, mentre F è un enumeratore che specifica con quale modalità ci si debba spostare: tra i possibili valori, i più usati sono AbsolutePosition (indica che T è la posizione effettiva) e RelativePosition (indica di spostarsi di T secondi in avanti)
  • State : proprietà enumerata che definisce lo stato corrente di riproduzione. Può assumere tre valori: Running (in riproduzione), Paused (in pausa), Stopped (interrotta)
  • Stop : ferma la riproduzione. Quando viene richiamata, sposta il cursorse all'inizio del file, mentre Pause mantiene la posizione corrente. Così, se si richiama Stop e successivamente Play, la riproduzione ripartità da capo
  • Stopped : determina se la riproduzione è stata interrotta
  • StopPosition : indica dove la riproduzione è stata interrotta
  • Volume : modifica il volume della riproduzione. I valori che può assumere vanno da -10000 (muto) a 0 (volume normale). Questa proprietà non influenza il volume di sistema, ma solo quello dell'oggetto su cui viene richiamato
I membri elencati sono esposti sia da Audio che da Video. I seguenti, invece, sono esposti solo da Video:
  • Audio : restituisce l'oggetto Audio che corrisponde al video in riproduzione. In questo modo si può regolare il volume o il bilanciamento normalmente
  • AverageTimePerFrame : il tempo impiegato dall'oggetto per riprodurre un singolo frame. Si può ottenere il classico valore FPS (frame per second) calcolando il reciproco di questo numero:
    Dim FramePerSecond AsSingle
    FramePerSecond = 1 / Video.AverageTimePerFrame 
  • Caption : se il video viene avviato senza un'adeguata proprietà Owner (illustrata poco più avanti nell'elenco), verrà automaticamente aperta una nuova finestra dentro la quale esso viene riprodotto. Caption imposta il titolo di tale finestra
  • DefaultSize : indica la dimensione ottimale del video (ossia quella in cui è stato creato)
  • Fullscreen : indica se il video debba essere riprodotto a tutto schermo. Questa proprietà deve essere impostata prima di richiamare il metodo Play. Durante la riproduzione è possibile premere Home per ritornare in modalità finestra, ma lo si può fare anche agendo da codice direttamente sulla proprietà
  • HideCursor : nasconde il mouse sopra al video
  • IsCursorHidden : determina se il cursore è stato nascosto
  • MaximumIdealSize : la massima dimensione possibile prima di deformare il video
  • MinimumIdealSize : la minima dimensione possibile prima di deformare il video
  • Owner : proprietà che definisce il "proprietario" del video. Con questo s'intende un qualsiasi controllo dentro al quale esso verrà riprodotto. È consigliabile usare una PictureBox o un Panel per questi compiti
  • ShowCursor : rende il mouse di nuovo visibile
  • Size : la dimensione del video
Prima di concludere, vorrei specificare che le classi sopra esposte sono valide per la riproduzione di questi tipi di file:
  • Windows Media Video (*.wmv)
  • Moving Pictures Expert Group 1 format (*.mpg)
  • Audio Video Interleave (*.avi)
  • Microsoft Audio Wave (*.wav)
  • Moving Pictures Expert Group 1 Layer 3 (*.mp3)
  • Windows Media Audio (*.wma)


<< Precedente Prossimo >>
A proposito dell'autore

Programmatore e analista .NET 2005/2008/2010 (in particolare C# e VB.NET), anche nell'implementazione Mono per Linux. Conoscenze approfondite di Pascal, PHP, XML, HTML 4.01/5, CSS 2.1/3, Javascript (e jQuery). Conoscenze buone di C, LUA, GML, Ruby, XNA, AJAX e Assembly 68000. Competenze basilari di C++, SQL, Hlsl, Java.