Usare i cue point

Il cue point è un punto in corrispondenza del quale il lettore video invia un evento cuePoint durante la riproduzione di un file video. Potete aggiungere cue point a un file FLV quando desiderate eseguire un'azione su un altro elemento della pagina Web. Inoltre, potete visualizzare un testo o un'immagine grafica oppure sincronizzare un'animazione Flash o ancora influire sulla riproduzione del file FLV mettendolo in pausa, cercando un altro punto del video o passando a un altro file FLV. I cue point consentono di controllare il codice ActionScript per sincronizzare i punti del file FLV con altre azioni sulla pagina Web.

Ci sono tre tipi diversi di cue point: Navigazione, Evento e ActionScript. I cue point di tipo Navigazione ed Evento sono conosciuti anche come cue point incorporati perché sono incorporati nel FLV in streaming e nel pacchetto di metadati del file FLV.

Un cue point di navigazione consente di cercare un fotogramma particolare del file FLV perché crea un fotogramma chiave all'interno del file FLV, che sarà il più vicino possibile alla posizione temporale specificata. Un fotogramma chiave è un segmento di dati che si trova tra i fotogrammi immagine del file FLV in streaming. Quando eseguite la ricerca di un cue point di navigazione, il componente cerca il fotogramma chiave e avvia l'evento cuePoint .

Un cue point di evento consente di sincronizzare un punto temporale all'interno del file FLV con un evento esterno sulla pagina Web. L'evento cuePoint si verifica esattamente nel momento specificato. Potete incorporare i cue point di navigazione e di evento in un file FLV usando la procedura guidata Importa video oppure Flash Video Encoder. Per ulteriori informazioni sulla procedura guidata Importa video e su Flash Video Encoder, vedete il Capitolo 16 “Operazioni con i file video" nella guida Uso di Flash .

Un cue point ActionScript è un cue point esterno che potete aggiungere mediante la finestra di dialogo Cue point Flash Video oppure tramite il metodo FLVPlayback.addASCuePoint() . Il componente memorizza e tiene traccia dei cue point ActionScript in maniera indipendente dal file FLV, pertanto questi risultano meno precisi dei cue point incorporati. La valutazione della precisione dei cue point ActionScript è di un decimo di secondo. Potete migliorare la precisione dei cue point ActionScript abbassando il valore della proprietà playheadUpdateInterval , perché quando l'indicatore di riproduzione si aggiorna, il componente genera l'evento cuePoint per i cue point ActionScript. Per ulteriori informazioni, vedete la proprietà FLVPlayback.playheadUpdateInterval in Guida di riferimento di ActionScript 3.0 per Flash Professional .

In ActionScript e all'interno dei metadati del file FLV, un cue point è rappresentato sotto forma di un oggetto con le proprietà seguenti: name , time , type e parameters . La proprietà name è una stringa che contiene il nome assegnato al cue point. La proprietà time è un numero che rappresenta l'ora in cui si verifica il cue point, espressa in ore, minuti, secondi e millisecondi (HH:MM:SS.mmm). La proprietà type è una stringa il cui valore può essere "navigation" , "event" o "actionscript" , a seconda del tipo di cue point che è stato creato. La proprietà parameters è un array di coppie nome/valore specificate.

Quando si verifica un evento cuePoint , l'oggetto cue point è disponibile nell'oggetto evento mediante la proprietà info .

Usare la finestra di dialogo Cue point Flash Video

Aprite la finestra di dialogo Cue point Flash Video facendo doppio clic sulla cella Valore per attivare il parametro cuePoints nella finestra di ispezione dei componenti. La finestra di dialogo sarà simile alla seguente figura:

Nella finestra di dialogo vengono visualizzati i cue point ActionScript e incorporati. Potete utilizzare questa finestra di dialogo per aggiungere ed eliminare i cue point ActionScript e i parametri cue point. Inoltre, potete attivare o disattivare i cue point incorporati. Tuttavia, non potete aggiungere, modificare o eliminare i cue point incorporati.

Aggiungere un cue point ActionScript:

  1. Fate doppio clic sulla cella Valore del parametro cuePoints nella finestra di ispezione dei componenti per aprire la finestra di dialogo Cue point Flash.

  2. Fate clic sul segno più (+) nell'angolo in alto a sinistra, sopra l'elenco dei cue point, per aggiungere una voce cue point ActionScript predefinita.

  3. Fate clic sul campo di testo Nuovo Cue Point nella colonna Nome e modificate il nome del cue point.

  4. Fate clic sul valore Tempo 00:00:00:000 per modificarlo e assegnare la posizione temporale in cui desiderate che si verifichi il cue point. Potete specificare il tempo in ore, minuti, secondi e millisecondi (HH:MM:SS.mmm).

    In caso di cue point multipli, il nuovo cue point viene spostato dalla finestra di dialogo nella giusta posizione cronologica all'interno dell'elenco.

  5. Per aggiungere un parametro al cue point selezionato, fate clic sul segno più (+) sopra la sezione Parametri e immettete i valori nelle colonne Nome e Valore. Ripetete questa operazione per ciascun parametro.

  6. Per aggiungere altri cue point ActionScript ripetete le operazioni descritte nei punti da 2 a 5 per ciascun cue point.

  7. Fate clic su OK per salvare le modifiche.

Eliminare un cue point ActionScript:

  1. Fate doppio clic sulla cella Valore del parametro cuePoints nella finestra di ispezione dei componenti per aprire la finestra di dialogo Cue point Flash.

  2. Selezionate il cue point da eliminare.

  3. Per eliminare il cue point, fate clic sul segno meno (-) nell'angolo in alto a sinistra, sopra l'elenco dei cue point.

  4. Ripetete le operazioni descritte nei punti da 2 a 3 per ciascun cue point che desiderate eliminare.

  5. Fate clic su OK per salvare le modifiche.

Per attivare o disattivare un cue point incorporato del file FLV:

  1. Fate doppio clic sulla cella Valore del parametro cuePoints nella finestra di ispezione dei componenti per aprire la finestra di dialogo Cue point Flash.

  2. Selezionate il cue point da attivare o disattivare.

  3. Fate clic sul valore nella colonna Tipo per attivare il menu a comparsa, oppure fate clic sul pulsante freccia giù.

  4. Fate clic sul nome corrispondente al tipo di cue point (ad esempio, Evento o Navigazione) per attivarlo. Fate clic su Disattivato per disattivarlo.

  5. Fate clic su OK per salvare le modifiche.

Usare i cue point con ActionScript

Potete usare ActionScript per aggiungere cue point ActionScript, intercettare eventi cuePoint , trovare cue point di qualunque tipo o di un tipo specifico, cercare un cue point di navigazione, attivare o disattivare i cue point, controllare se un cue point è attivato e infine eliminare un cue point.

Negli esempi forniti in questa sezione viene usato un file FLV chiamato cuepoints.flv, che contiene i tre cue point seguenti:

Nome

Tempo

Tipo

point1

00:00:00.418

Navigazione

point2

00:00:07.748

Navigazione

point3

00:00:16.020

Navigazione

Aggiungere cue point ActionScript

Potete aggiungere cue point ActionScript a un file FLV mediante il metodo addASCuePoint() . Nell'esempio seguente vengono aggiunti due cue point ActionScript al file FLV quando questo è pronto per iniziare la riproduzione. Il primo cue point viene aggiunto utilizzando un oggetto cue point, che specifica il tempo, il nome e il tipo di cue point. La seconda chiamata specifica il tempo e il nome usando i parametri time e name del metodo.

// Requires an FLVPlayback instance called my_FLVPlybk on Stage 
import fl.video.*; 
import fl.video.MetadataEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var cuePt:Object = new Object(); //create cue point object 
cuePt.time = 2.02; 
cuePt.name = "ASpt1"; 
cuePt.type = "actionscript"; 
my_FLVPlybk.addASCuePoint(cuePt);//add AS cue point 
// add 2nd AS cue point using time and name parameters 
my_FLVPlybk.addASCuePoint(5, "ASpt2"); 

Per ulteriori informazioni, vedete il metodo FLVPlayback.addASCuePoint() nella Guida di riferimento di ActionScript 3.0 per Flash Professional .

Intercettare eventi cuePoint

L'evento cuePoint consente di controllare il codice ActionScript quando si verifica untale evento. Quando si verifica un cue point nel seguente esempio, il listener cuePoint chiama una funzione del gestore di eventi che visualizza il valore della proprietà playheadTime e il nome e il tipo di cue point. Usare questo esempio in combinazione con l'esempio della precedente sezione Aggiungere cue point ActionScript per visualizzare i risultati.

my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Elapsed time in seconds: " + my_FLVPlybk.playheadTime); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
}

Per ulteriori informazioni sull'evento cuePoint , vedete l'evento FLVPlayback.cuePoint nella Guida di riferimento di ActionScript 3.0 per Flash Professional .

Rilevare cue point

Mediante ActionScript potete cercare un cue point di qualunque tipo, il cue point in prossimità del tempo specificato o il cue point successivo con un nome specifico.

Il gestore di eventi ready_listener() nell'esempio seguente chiama il metodo findCuePoint() per cercare il cue point ASpt1 , quindi il metodo findNearestCuePoint() per cercare il cue point di navigazione più vicino al tempo del cue point ASpt1 :

import fl.video.FLVPlayback; 
import fl.video.CuePointType; 
import fl.video.VideoEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt1", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNearestCuePoint(rtn_obj.time, CuePointType.NAVIGATION); 
    traceit(rtn_obj); 
} 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

Nell'esempio seguente il gestore di eventi ready_listener() rileva il cue point ASpt e chiama il metodo findNextCuePointWithName() per rilevare il cue point successivo con lo stesso nome:

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt");//add 2nd Aspt 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNextCuePointWithName(rtn_obj); 
    traceit(rtn_obj); 
} 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

Per ulteriori informazioni su come trovare i cue point, vedete i metodi FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() e FLVPlayback.findNextCuePointWithName() nella Guida di riferimento di ActionScript 3.0 per Flash Professional .

Rilevare cue point di navigazione

Potete cercare un cue point di navigazione oppure il cue point di navigazione successivo o precedente alla posizione temporale specificata. Nell'esempio seguente viene riprodotto il file FLV cuepoints.flv e viene cercato il cue point a 7.748 quando si verifica l'evento ready . Quando si verifica l'evento cuePoint , nell'esempio viene chiamato il metodo seekToPrevNavCuePoint() per cercare il primo cue point. Quando si verifica l'evento cuePoint , nell'esempio viene chiamato il metodo seekToNextNavCuePoint() per cercare l'ultimo cue point aggiungendo 10 secondi a eventObject.info.time , che rappresenta il tempo del cue point corrente.

import fl.video.*; 
 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:Object):void { 
    my_FLVPlybk.seekToNavCuePoint("point2"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
    trace(eventObject.info.time); 
    if(eventObject.info.time == 7.748) 
        my_FLVPlybk.seekToPrevNavCuePoint(eventObject.info.time - .005); 
    else 
        my_FLVPlybk.seekToNextNavCuePoint(eventObject.info.time + 10); 
} 
my_FLVPlybk.source = "http://helpexamples.com/flash/video/cuepoints.flv";

Per ulteriori informazioni, vedete i metodi FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() e FLVPlayback.seekToPrevNavCuePoint() nella Guida di riferimento di ActionScript 3.0 per Flash Professional .

Attivare e disattivare dei cue point incorporati del file FLV

Potete attivare e disattivare i cue point del file FLV mediante il metodo setFLVCuePointEnabled() . I cue point disattivati non attivano l'evento cuePoint e non funzionano con i metodi seekToCuePoint() , seekToNextNavCuePoint() o seekToPrevNavCuePoint() . Tuttavia, potete trovare i cue point disattivati con i metodi findCuePoint() , findNearestCuePoint() e findNextCuePointWithName() .

Potete verificare se un cue point incorporato del file FLV viene attivato mediante il metodo isFLVCuePointEnabled() . Nel seguente esempio vengono disattivati i cue point incorporati point2 e point3 quando il video è pronto per la riproduzione. Tuttavia, quando si verifica il primo evento cuePoint , il gestore di eventi controlla se il cue point point3 è disattivato e, in caso affermativo, lo attiva.

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"; 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point2"); 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point3"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point time is: " + eventObject.info.time); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
        if (my_FLVPlybk.isFLVCuePointEnabled("point2") == false) { 
            my_FLVPlybk.setFLVCuePointEnabled(true, "point2"); 
        } 
}

Per ulteriori informazioni, vedete i metodi FLVPlayback.isFLVCuePointEnabled() e FLVPlayback.setFLVCuePointEnabled() nella Guida di riferimento di ActionScript 3.0 per Flash Professional .

Rimuovere un cue point ActionScript

Potete rimuovere un cue point ActionScript mediante il metodo removeASCuePoint() . Nel seguente esempio viene rimosso il cue point ASpt2 quando si verifica il cue point ASpt1 :

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt2");//add 2nd Aspt 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point name is: " + eventObject.info.name); 
        if (eventObject.info.name == "ASpt1") { 
            my_FLVPlybk.removeASCuePoint("ASpt2");     
            trace("Removed cue point ASpt2"); 
        } 
}

Per ulteriori informazioni, vedete il metodo FLVPlayback.removeASCuePoint() nella Guida di riferimento di ActionScript 3.0 per Flash Professional .