L'FLV è un formato molto diffuso sul Web, basti pensare che è quello utilizzato da YouTube e molti altri aggregatori video.
In questa lezione vediamo come caricare un video FLV all'interno di un filmato Flash.
Come sempre la tecnica non è difficile, ma eviteremo di scendere nei dettagli e ci limiteremo ad osservare il funzionamento di un piccolo frammento di codice. Come al solito iniziamo presentando i nuovi oggetti.
L'oggetto Video
Cominciamo dall'oggetto Video
. Si tratta di un contenitore che permette di visualizzare una fonte video, appunto, come ad esempio una webcam o uno stream da internet. Possiamo definire un nuovo video decidendone le dimensioni:
var mioVideo:Video = new Video(320, 240); this.addChild(mioVideo);
Una volta definito il nostro video possiamo associarlo ad un MovieClip, con addChild
. Nel nostro caso abbiamo associato il video mioVideo
al MovieClip contenitore (this
).
NetStream
Sia che si tratti di un file sul nostro PC, sia che ci venga fornito da Web server, possiamo considreare un file video come uno "stream". Quindi possiamo associare l'idea di un oggetto netStream
ad un video esterno (o audio esterno).
Detto questo vediamo come lavorare con netStream
. Anzitutto creiamo una connessione sfruttando un oggetto NetConnection
, questa connessione può essere stabilita con un Media Server ma non è questo il caso, quindi inseriamo null
nel metodo connect()
.
var nc:NetConnection = new NetConnection(); nc.connect(null);
Infine creiamo il nostro oggetto NetStream
, lo colleghiamo al contenitore mioVideo
e facciamo partire la riproduzione del file con l'azione play()
, nella quale specifichiamo l'URL del file da visualizzare.
// definiamo lo stream var mioStream:NetStream = new NetStream(nc); // colleghiamo lo stream al contenitore Video mioVideo.attachNetStream(mioStream); // diamo il vie alla riproduzione mioStream.play("sample.flv");
I Metadati
Se lanciamo l'applicazione vediamo che il Flash Player ci risponde con una eccezione: non abbiamo provveduto a gestire l'evento della lettura dei Metadati.
I metadati sono informazioni a contorno del video, come ad esempio la durata e il bitrate. Flash si aspetta la definizione di un client e di una funzione, onMetaData
, che gestisca queste informazioni.
var mioClient:Object = new Object(); netClient.onMetaData = function(meta:Object) { trace(meta.duration); }; ns.client = netClient;
Fatto anche questo possiamo lanciare il nostro filmato che include l'FLV.
L'esempio finito
È possibile scaricare l'esempio completo, con il video e il sorgente (.fla
) da qui.