La possibilité de lire et manipuler des informations vidéo en ActionScript, au même titre que les autres éléments multimédia (images, texte, animations, etc.) est l'une des importantes caractéristiques d'Adobe Flash Player.
Lorsque vous créez un fichier vidéo Flash (FLV) dans Adobe Flash CS3 Professional, vous avez la possibilité de sélectionner un habillage, ou « enveloppe », comportant les contrôles de lecture courants. Toutefois, vous n'êtes pas limité aux options disponibles. ActionScript offre un contrôle précis du chargement, de l'affichage et de la lecture de la vidéo, et vous pouvez créer votre propre enveloppe ou utiliser une vidéo de façon beaucoup moins traditionnelle.
La gestion de la vidéo en ActionScript nécessite de travailler avec une combinaison de diverses classes :
La classe Video : le contenu vidéo affiché sur la scène est une instance de la classe Video. La classe Video est un objet d'affichage, il est donc possible de le manipuler à l'aide des mêmes techniques que les autres objets d'affichage (positionnement, application de transformations, de filtres et de modes de fusion, etc.)
La classe NetStream : Lorsque vous chargez un fichier vidéo qui doit être contrôlé en ActionScript, une instance de NetStream représente la source du contenu vidéo (dans ce cas précis, un flux de données vidéo). L'utilisation d'une instance de NetStream nécessite d'utiliser également un objet NetConnection, qui assure la connexion avec le fichier vidéo, comme un tunnel qu'emprunteraient les données vidéo.
La classe Camera : Si vous devez gérer des données provenant d'une caméra connectée à l'ordinateur de l'utilisateur, une instance de Camera représente la source du contenu vidéo (la caméra de l'utilisateur et les données vidéo qu'elle transmet).
Pour charger un fichier vidéo externe, vous pouvez charger ce fichier à partir d'un serveur Web standard (téléchargement progressif) ou gérer de la vidéo en flux continu transmise par un serveur spécialisé tel que Macromedia® Flash Media Server d'Adobe.
Tâches courantes d'utilisation de la vidéo
Voici quelques tâches courantes relatives à la vidéo qui sont présentées dans ce chapitre :
Affichage et contrôle d'une vidéo
Chargement de fichiers FLV externes
Gestion des métadonnées et des points de repère dans un fichier vidéo
Capture et affichage d'un signal vidéo provenant de la caméra de l'utilisateur
Concepts importants et terminologie
Point de repère : marqueur qu'il est possible de placer en un point spécifique d'un fichier vidéo, par exemple pour l'utiliser comme signet pour repérer ce point à partir du début de la vidéo ou pour fournir des données supplémentaires associées à ce moment de la vidéo.
Encodage : processus de conversion de données vidéo d'un format dans un autre format idéo. Par exemple, la conversion d'une source vidéo en haute résolution dans un format plus adapté à la diffusion sur l'Internet.
Image : élément de base des informations vidéo. Chaque image est une image fixe identique à un cliché photographique représentant un moment précis. La lecture en séquence à vitesse élevée de ces images fixes donne l'illusion du mouvement.
Image-clé : image vidéo qui contienr l'ensemble des informations d'image. Les autres images qui suivent une image-clé ne contiennent que les informations décrivant leurs différences par rapport à l'image-clé, et non pas les informations d'image complètes.
Métadonnées : informations sur un fichier vidéo qui peuvent être intégrées à ce fichier et lues après son chargement.
Téléchargement progressif : lorsqu'un fichier vidéo est transmis par un serveur Web standard, les données vidéo sont chargées en mode progressif, c'est-à-dire en séquences. L'avantage est qu'il est possible de commencer à diffuser la vidéo avant la fin du téléchargement complet. Toutefois, il est alors impossible de passer directement à une partie de la vidéo qui n'a pas encore été chargée.
Diffusion continue : pour éviter le téléchargement progressif, il est possible d'utiliser un serveur vidéo spécial pour diffuser de la vidéo sur l'Internet selon une technique connue sous le nom de flux continu, ou streaming. Avec la diffusion en flux continu, l'ordinateur client ne charge jamais toute la vidéo à la fois. Pour accélérer les élais de chargement, l'ordinateur n'a besoin, à un moment donné, que d'une partie de l'ensemble des informations vidéo. Comme un serveur spécial contrôle la diffusion du contenu vidéo, une partie quelconque de celle-ci peut être transmise à tout moment, et il n'est donc pas nécessaire d'attendre qu'elle soit chargée pour y accéder.
Utilisation des exemples des chapitres
Au fur et à mesure que vous avancez dans le chapitre, vous pouvez tester des exemples de code. Etant donné que ce chapitre traite de l'utilisation de la vidéo dans ActionScript, un grand nombre d'exemples de code de ce chapitre impliquent l'utilisation d'un objet vidéo (créé et placé sur la scène dans l'outil de programmation Flash, ou créé à l'aide d'ActionScript). Pour tester un exemple, il est nécessaire d'afficher son résultat dans Flash Player pour voir l'effet du code sur la vidéo.
La plupart de ces exemples manipulent un objet Video sans l'avoir créé explicitement. Pour tester les exemples de code de ce chapitre :
Créez un document Flash vide.
Sélectionnez une image-clé dans le scénario.
Ouvrez le panneau Actions et copiez le code de l'exemple dans la fenêtre de script:
Si nécessaire, ouvrez le panneau Bibliothèque.
Dans le menu du panneau Bibliothèque, choisissez Nouvelle vidéo.
Dans la boîte de dialogue Propriétés vidéo, nommez le symbole vidéo et, dans le champ Type, choisissez Vidéo (contrôlé par ActionScript). Cliquez sur OK pour créer le symbole de l'objet Video.
Faites glisser une occurrence de ce symbole du panneau Bibliothèque jusqu'à la scène.
Laissez cette occurrence sélectionnée et, dans l'inspecteur Propriétés, donnez-lui un nom d'instance. Le nom doit correspondre au nom utilisé pour l'occurrence dans l'exemple de code (par exemple, si le code manipule un objet vidéo vid, vous devez appeler votre instance Stage vid également).
Choisissez Contrôle > Tester l'animation pour exécuter le programme.
Vous verrez à l'écran le résultat du code de l'exemple.
Outre l'exemple de code à proprement parler, certains listings de ce chapitre comportent la définition d'une classe. Dans ces exemples de code, outre les étapes précédentes, et avant de tester le fichier SWF, vous devrez créer la classe utilisée dans l'exemple. Pour créer une classe définie dans un exemple de code :
Enregistrez le fichier FLA qui sera utilisé pour le test.
Dans le menu principal, choisissez Fichier > Nouveau.
Dans la section Type de la boîte de dialogue Nouveau document, choisissez Fichier ActionScript. Cliquez sur OK pour créer le nouveau fichier ActionScript.
Copiez dans le document ActionScript le code de définition de la classe dans l'exemple.
Dans le menu principal, choisissez Fichier > Enregistrer. Enregistrez le fichier dans le même répertoire que le document Flash. Le nom du fichier doit correspondre au nom de la classe du code. Par exemple, si le listing définit une classe nommée « VideoTest », enregistrez le fichier ActionScript sous le nom « VideoTest.as ».
Retournez dans le document Flash.
Choisissez Contrôle > Tester l'animation pour exécuter le programme.
Les résultats de l'exemple apparaissent à l'écran.