Alcuni file video potrebbero contenere degli errori o non essere leggibili dal Flash Player: per questi casi l'oggetto NetStream prevede i messaggi di stato NetStream.FileStructureInvalid o NetStream.NoSupportedTrackFound; il primo avviene quando la struttura del file non è valida, mentre il secondo si verifica nel caso in cui nessuna delle tracce video e audio del file caricato risulti compatibile con il Flash Player. È possibile controllare questi messaggi grazie all'evento onStatus della classe NetStream, per cui con Actionscript 2 utilizzeremo il seguente codice:
Listato 10.1. Controlla i video non leggibili in AS2
stream_video.onStatus = function(evt:Object):Void{
if(evt.code == "NetStream.FileStructureInvalid"){
trace("La struttura del file non è valida");
}
else if(evt.code == "NetStream.NoSupportedTrackFound"){
trace("Non ci sono tracce supportate dal player nel file caricato");
}
}
Il codice in Actionscript 3 è molto simile, cambiano solamente l'associazione dell'evento all'oggetto NetStream (effettuata tramite addEventListener) e la lettura della proprietà code dell'oggetto NetStream, che in Actionscript 3 è contenuto nella proprietà info.
Listato 10.2. Controlla i video non leggibili in AS3
function controllaStatus(evt:NetStatusEvent):void{
if(evt.info.code == "NetStream.FileStructureInvalid"){
trace("La struttura del file non è valida");
}
else if(evt.info.code == "NetStream.NoSupportedTrackFound"){
trace("Non ci sono tracce supportate dal player nel file caricato");
}
}
stream_video.addEventListener(NetStatusEvent.NET_STATUS, controllaStatus);
Questo codice può essere utile specialmente nel caso in cui il nostro player dovesse caricare file esterni di cui non conosciamo l'esatta codifica o provenienza.
Nota: nel corso delle lezioni abbiamo sempre usato le estensioni "standard" per i file, tuttavia Flash non bada all'estensione del file ma al suo contenuto, difatti se anche rinominassimo il file usato negli esempi audio.m4a in audio.123, impostando questo nuovo nome nelle azioni il file verrebbe caricato e riprodotto correttamente.
Difetti e problematiche attuali
Sebbene l'introduzione del supporto per audio e video ad alta qualità nel Flash Player possa rappresentare un grosso passo avanti nella diffusione di contenuti multimediali sul web, trattandosi di una feature molto recente sono presenti anche alcuni difetti; oltre a quelli già accennati durante la guida va considerato ad esempio come non sia supportato il canale alpha: questo rende attualmente impossibile creare degli effetti di "sovrapposizione" dei filmati (per esempio il "classico" personaggio con sfondi intercambiabili), inoltre nel caso di file con più tracce video e/o audio, soltanto la prima potrà essere riprodotta.
Il problema maggiore riguarda però la licenza d'uso: Adobe ha ottenuto una licenza per uso non commerciale, questo comporta che ogni utilizzo del codec H.264 abbinato al Flash Player in progetti con scopo di lucro potrebbe richiedere particolari licenze, presumibilmente a pagamento; per maggiori informazioni a riguardo consultare i siti mpegla.com e vialicensing.com.