Utilisation de points de repère

Un point de repère est un point au niveau duquel le lecteur vidéo distribue un événement cuePoint pendant la lecture d'un fichier vidéo. Vous pouvez ajouter des points de repère dans un fichier FLV aux moments auxquels vous souhaitez qu'une action se produise pour un autre élément de la page Web. Par exemple, vous pouvez afficher du texte ou un graphique ou bien effectuer une synchronisation avec une animation Flash ou encore modifier la lecture du fichier FLV en l'interrompant, en recherchant un autre point de repère dans la vidéo ou en basculant vers un autre fichier FLV. Les points de repère vous permettent de recevoir le contrôle dans le code ActionScript, de façon à synchroniser ces points contenus dans votre fichier FLV avec d'autres actions de la page Web.

Les points de repère sont de trois types : navigation, événement et ActionScript. Les points de repère de navigation et d'événement sont également désignés sous le nom de points de repère intégrés , car ils sont intégrés dans le flux continu du fichier FLV et dans le paquet de métadonnées du fichier FLV.

Un point de repère de navigation permet de rechercher une image particulière du fichier FLV, car il y crée une image-clé la plus près possible de l'heure indiquée. Une image-clé est un segment de données qui intervient entre les images du flux continu du fichier FLV. Lorsque vous recherchez un point de repère de navigation, le composant recherche cette image-clé et démarre l'événement cuePoint .

Un point de repère d'événement permet de synchroniser un point dans le temps du fichier FLV avec un événement externe de la page Web. L'événement cuePoint se produit exactement au moment spécifié. Vous pouvez intégrer des points de repère de navigation et d'événement dans un fichier FLV à l'aide de l'Assistant Importation vidéo ou de l'encodeur vidéo de Flash. Pour plus d'informations sur l'Assistant d'importation vidéo et l'encodeur vidéo de Flash, consultez le chapitre 16, « Utilisation de la vidéo » du guide Utilisation de Flash .

Un point de repère ActionScript est un point de repère externe que vous pouvez ajouter dans la boîte de dialogue Points de repère des vidéos Flash du composant ou via la méthode FLVPlayback.addASCuePoint() . Le composant stocke et suit les points de repère ActionScript séparément du fichier FLV. Ils sont par conséquent moins précis que les points de repère intégrés. La précision des points de repère ActionScript est d'un dixième de seconde. Vous pouvez améliorer la précision des points de repère ActionScript en diminuant la valeur de la propriété playheadUpdateInterval , car le composant génère l'événement cuePoint pour les points de repère ActionScript lors des mises à jour de la tête de lecture. Pour plus d’informations, voir la propriété FLVPlayback.playheadUpdateInterval dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Dans ActionScript et dans les métadonnées du fichier FLV, un point de repère est représenté comme un objet possédant les propriétés suivantes : name , time , type et parameters . La propriété name est une chaîne qui contient le nom attribué au point de repère. La propriété time est un nombre qui représente l'heure exprimée en heures, minutes, secondes et millisecondes (HH:MM:SS.mmm) à laquelle se présente le point de repère. La propriété type est une chaîne dont la valeur est navigation , event ou actionscript , en fonction du type de point de repère que vous avez créé. La propriété parameters est une plage de paires nom/valeur spécifiées.

Lorsqu'un événement cuePoint se produit, l'objet point de repère est disponible dans l'objet événement par le biais de la propriété info .

Utilisation de la boîte de dialogue Points de repère des vidéos Flash

Ouvrez la boîte de dialogue Points de repère des vidéos Flash en double-cliquant sur la cellule Value du paramètre cuePoints dans l’Inspecteur des composants. La boîte de dialogue est semblable à l’illustration suivante :

Afficher le graphique à sa taille d'origine
Boîte de dialogue Points de repère

La boîte de dialogue affiche des points de repère intégrés et ActionScript. Vous pouvez l’utiliser pour ajouter et supprimer des points de repère ActionScript et des paramètres cuePoints. Vous pouvez également activer ou désactiver des points de repère intégrés. Vous ne pouvez cependant pas en ajouter, les modifier ou les supprimer.

Ajout d’un point de repère ActionScript

  1. Dans l’Inspecteur des composants, double-cliquez sur la cellule value du paramètre cuePoints pour ouvrir la boîte de dialogue Points de repère Flash.

  2. Cliquez sur le signe plus (+) dans le coin supérieur gauche, au-dessus de la liste des points de repère, pour ajouter une entrée de point de repère ActionScript par défaut.

  3. Cliquez sur le texte Nouveau point de repère dans la colonne Nom, puis ajoutez du texte pour nommer le point de repère.

  4. Cliquez sur la valeur horaire 00:00:00:000 pour la modifier, puis affectez l’heure du point de repère. Vous pouvez spécifier l’heure en heures, minutes, secondes et millisecondes (HH:MM:SS.mmm).

    Si plusieurs points de repère existent, la boîte de dialogue place ce nouveau point à sa position chronologique dans la liste.

  5. Pour ajouter un paramètre au point de repère sélectionné, cliquez sur le signe plus (+) au-dessus de la section Paramètres, puis entrez des valeurs dans les colonnes Nom et Valeur. Répétez cette étape pour chaque paramètre.

  6. Pour ajouter d’autres points de repère ActionScript, répétez les étapes 2 à 5 pour chacun d’eux.

  7. Cliquez sur OK pour enregistrer les changements.

Suppression d’un point de repère ActionScript

  1. Dans l’Inspecteur des composants, double-cliquez sur la cellule value du paramètre cuePoints pour ouvrir la boîte de dialogue Points de repère Flash.

  2. Sélectionnez le point de repère à supprimer.

  3. Cliquez sur le signe moins (-) dans le coin supérieur gauche, au-dessus de la liste des points de repère, pour le supprimer.

  4. Répétez les étapes 2 et 3 pour chaque point de repère à supprimer.

  5. Cliquez sur OK pour enregistrer les changements.

Activation ou désactivation d’un point de repère intégré à un fichier FLV

  1. Dans l’Inspecteur des composants, double-cliquez sur la cellule value du paramètre cuePoints pour ouvrir la boîte de dialogue Points de repère Flash.

  2. Sélectionnez le point de repère à activer ou à désactiver.

  3. Dans la colonne Type, cliquez sur la valeur pour déclencher le menu contextuel ou cliquez sur la flèche vers le bas.

  4. Cliquez sur le nom du type de point de repère (par exemple, Evénement ou Navigation) pour l’activer. Cliquez sur Désactivé pour le désactiver.

  5. Cliquez sur OK pour enregistrer les changements.

Utilisation de points de repère avec ActionScript

Vous pouvez utiliser ActionScript pour ajouter des points de repère ActionScript, écouter des événements cuePoint , rechercher des points de repère d’un type quelconque ou particulier, chercher un point de repère de navigation, activer ou désactiver un point de repère, vérifier si un point de repère est activé ou en supprimer un.

Les exemples figurant dans cette section utilisent le fichier FLV cuepoints.flv. Il contient les trois points de repère suivants :

Nom

Heure

Type

point1

00:00:00.418

Navigation

point2

00:00:07.748

Navigation

point3

00:00:16.020

Navigation

Ajout de points de repère ActionScript

Vous pouvez ajouter des points de repère ActionScript dans un fichier FLV à l’aide de la méthode addASCuePoint() . L’exemple suivant ajoute deux points de repère ActionScript dans le fichier FLV lorsqu’il est prêt. Il ajoute le premier point de repère à l’aide d’un objet point de repère qui spécifie l’heure, le nom et le type du point dans ses propriétés. Le second appel spécifie l’heure et le nom à l’aide des paramètres time et name de la méthode.

// 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"); 

Pour plus d’informations, voir la méthode FLVPlayback.addASCuePoint() dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Ecoute d’événements cuePoint

L’événement cuePoint permet de recevoir le contrôle dans le code ActionScript lorsqu’un événement cuePoint se produit. Lorsque des points de repère sont trouvés dans l’exemple suivant, l’écouteur cuePoint appelle un gestionnaire d’événements qui affiche la valeur de la propriété playheadTime ainsi que le nom et le type du point de repère. Pour voir les résultats, utilisez cet exemple en combinaison avec celui de la section précédente, Ajout de points de repère ActionScript.

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); 
}

Pour plus d’informations sur l’événement cuePoint , voir l’événement FLVPlayback.cuePoint dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Recherche de points de repère

En utilisant ActionScript, vous pouvez rechercher un point de repère de tout type, le point de repère le plus proche d’une heure ou un point ayant un nom particulier.

Dans l’exemple suivant, le gestionnaire d’événements ready appelle la méthode findCuePoint() pour rechercher le point de repère ASpt1 , puis la méthode findNearestCuePoint() pour rechercher le point de repère de navigation le plus proche de l’heure du 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); 
}

Dans l’exemple suivant, le gestionnaire d’événements ready_listener() recherche le point de repère ASpt et appelle la méthode findNextCuePointWithName() pour rechercher le point de repère suivant portant le même nom :

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); 
}

Pour plus d’informations sur la détection des points de repères, voir les méthodes FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() et FLVPlayback.findNextCuePointWithName() dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Recherche de points de repère de navigation

Vous pouvez rechercher un point de repère de navigation et le point de repère de navigation suivant ou précédent à une heure spécifiée. L’exemple suivant lit le fichier FLV cuepoints.flv et recherche le point de repère situé à 7.748 lorsque l’événement ready a lieu. Lorsque l’événement cuePoint se produit, l’exemple appelle la méthode seekToPrevNavCuePoint() pour rechercher le premier point de repère. Lorsque cet événement se produit, l’exemple appelle la méthode seekToNextNavCuePoint() pour rechercher le dernier point de repère en ajoutant 10 secondes à eventObject.info.time , qui correspond à l’heure du point de repère actuel.

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";

Pour plus d’informations, voir les méthodes FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() et FLVPlayback.seekToPrevNavCuePoint() dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Activation et désactivation des points de repère intégrés au fichier FLV

Vous pouvez activer et désactiver les points de repère intégrés au fichier FLV à l’aide de la méthode setFLVCuePointEnabled() . Les points de repère désactivés ne déclenchent pas d’événements cuePoint et n’utilisent pas les méthodes seekToCuePoint() , seekToNextNavCuePoint() ni seekToPrevNavCuePoint() . Toutefois, vous pouvez rechercher des points de repère désactivés à l’aide des méthodes findCuePoint() , findNearestCuePoint() et findNextCuePointWithName() .

Vous pouvez vérifier si un point de repère intégré au fichier FLV est activé en utilisant la méthode isFLVCuePointEnabled() . L’exemple suivant désactive les points de repère intégrés point2 et point3 lorsque la vidéo est prête à être lue. Cependant, lorsque le premier événement cuePoint se produit, le gestionnaire d’événements vérifie si le point de repère point3 est désactivé. Le cas échéant, il l’active.

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"); 
        } 
}

Pour plus d’informations, voir les méthodes FLVPlayback.isFLVCuePointEnabled() et FLVPlayback.setFLVCuePointEnabled() dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Suppression d’un point de repère ActionScript

La méthode removeASCuePoint() permet de supprimer un point de repère ActionScript. L’exemple suivant supprime le point de repère ASpt2 lorsque le point de repère ASpt1 se présente :

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"); 
        } 
}

Pour plus d’informations, voir FLVPlayback.removeASCuePoint() dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .