Package | flash.media |
Classe | public class StageVideo |
Héritage | StageVideo EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Prise en charge du profil AIR : dans AIR 3, tous les périphériques AIR pour TV et certains périphériques mobiles prennent en charge cette fonctionnalité. AIR 3 for iOS utilise l’objet StageVideo pour le décodage de matériel avec H. 264 vidéo, avec une prise en charge limitée pour la fonctionnalité NetStream. AIR 3 for iOS prend également en charge les codecs On2 et Sorenson par le biais de l’objet StageVideo. Cette prise en charge n’utilise pas décodage matériel et ne limite pas la fonctionnalité NetStream. Dans AIR 2.5, seuls les périphériques AIR pour TV prennent en charge cette fonctionnalité. En outre, le code ActionScript de cette fonctionnalité dans AIR pour TV 2.5 est différent du code ActionScript dans AIR 3 ou Flash Player 10.2. Les différences sont indiquées dans les descriptions ActionScript. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils. La classe StageVideo n’est pas prise en charge dans les profils de bureau AIR ou extendedDesktop.
La vidéo affichée par l’objet StageVideo apparaît toujours dans une zone rectangulaire sur la scène, derrière tous les objets d’affichage Flash. L’objet StageVideo profite par conséquent de l’accélération matérielle tout en prenant en charge le cas d’affichage vidéo le plus courant : une zone d’affichage rectangulaire incrustée avec des commandes vidéo.
Il est plus avantageux d’utiliser un objet StageVideo qu’un objet Video, et cela à plusieurs égards :
- Amélioration des performances d’affichage de la vidéo en raison de l’utilisation de l’accélération matérielle.
- Moindre utilisation du processeur.
- Flexibilité et la créativité pour le développement de contenu, tels que des commandes vidéo, qui apparaît devant le StageVideo objet.
Etant donné que le matériel du périphérique affiche la vidéo, un objet StageVideo est soumis aux contraintes suivantes par rapport à un objet Video :
- Pour chaque fichier SWF, Flash Player limite à quatre le nombre d’objets StageVideo pouvant simultanément afficher des vidéos. La limite réelle peut néanmoins être inférieure, selon les ressources matérielles du périphérique. Sur les périphériques AIR pour TV, seul un objet StageVideo à la fois peut afficher une vidéo.
- La durée vidéo n’est pas synchronisée avec la durée du contenu Flash qu’affiche le moteur d’exécution.
- La zone d’affichage vidéo ne peut être qu’un rectangle. Il est impossible d’utiliser des zones d’affichage plus avancées, telles que des formes elliptiques ou irrégulières.
- Vous ne pouvez pas faire pivoter la vidéo.
- Vous ne pouvez pas mettre la vidéo en cache sous forme de bitmap ou utiliser BitmapData pour y accéder.
- Vous ne pouvez pas appliquer des filtres à la vidéo.
- Il est impossible de d’appliquer des transformations de couleur à la vidéo.
- Il est impossible de d’appliquer une valeur alpha à la vidéo.
- Les modes de fusion que vous appliquez à des objets d’affichage qui se trouvent à l’avant-plan de la vidéo ne s’appliquent pas à la vidéo.
- Vous pouvez positionner la vidéo uniquement sur les limites de pixels pleines.
- Bien que le rendu soit optimisé en fonction du matériel, il n’est pas exactement identique au niveau des pixels sur tous les périphériques. De légères variations ont lieu en raison des différences entre les pilotes et les plates-formes.
- Certains périphériques ne prennent pas en charge tous les espaces colorimétriques requis. Par exemple, certains périphériques ne prennent pas en charge BT.709, la norme H. 264. Dans de tels cas, vous pouvez utiliser BT.601 pour un affichage rapide.
- Vous ne pouvez pas utiliser la vidéo sur la scène avec les paramètres WMODE
normal
,opaque
ettransparent
. La vidéo sur la scène prend en charge uniquementWMODE=direct
lorsqu’elle n’est pas en mode plein écran. WMODE n’a aucun effet dans Safari 4 ou une version ultérieure, IE 9 ou une version ultérieure, ou AIR pour TV. - Lors de l’utilisation de StageVideo dans une application AIR for Android, définissez
colorDepth
sur 32bit dans le descripteur d’application. L’utilisation de StageVideo avec une profondeur de couleurs 16 bits n’est pas prise en charge. - Sous Android, StageVideo est pris en charge uniquement sur les périphériques exécutant Android 3 (Honeycomb) et versions ultérieures. Pour que votre application puisse s'exécuter sur le plus grand choix possible de périphériques Android, veillez à toujours fournir la logique pour l'affichage de vidéos à l'aide de l'objet Video lorsque StageVideo n'est pas disponible.
Voici un récapitulatif de la méthode d’utilisation d’un objet StageVideo pour lire une vidéo :
- Ecoutez l’événement StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY pour savoir quand l’objet vectoriel Stage.stageVideos a changé. (Non pris en charge sur AIR 2.5 pour TV.)
- Si l’événement StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY indique que la vidéo sur la scène est disponible, utilisez l’objet vectoriel
Stage.stageVideos
à l’intérieur du gestionnaire d’événement pour accéder à un objet StageVideo. Dans AIR 2.5 pour TV, accédez à l’objet vectorielStage.stageVideos
après le rendu de la première image SWF. Remarque : il est impossible de créer un objet StageVideo. - Associez-lui un objet NetStream à l’aide de
StageVideo.attachNetStream()
. - Lisez la vidéo à l’aide de
NetStream.play()
. - Ecoutez l’événement
StageVideoEvent.RENDER_STATE
sur l’objet StageVideo afin de déterminer l’état de lecture de la vidéo. La réception de cet événement indique également que les propriétés width et height de la vidéo ont été initialisées ou modifiées. - Ecoutez l’événement
VideoEvent.RENDER_STATE
sur l’objet Video. Cet événement offre les mêmes états que l’événement StageVideoEvent.RENDER_STATE ; vous pouvez donc également l’utiliser pour déterminer si l’accélération matérielle (GPU) est disponible. La réception de cet événement indique également que les propriétés width et height de la vidéo ont été initialisées ou modifiées. (Non pris en charge sur AIR 2.5 pour TV.)
Si un événement StageVideoEvent.RENDER_STATE
indique qu’il est impossible de lire la vidéo, vous pouvez faire marche arrière et utiliser un objet Video au lieu d’un objet StageVideo. Cet événement est distribué après que la vidéo a été associée à un objet NetStream et lors de sa lecture. Par ailleurs, selon la plate-forme, tout changement de l’état de lecture peut entraîner la distribution de l’événement. Gérez l’événement StageVideoEvent.RENDER_STATE
pour vérifier si l’application lit ou ne lit pas la vidéo.
Si une vidéo en cours d’exécution passe en mode plein écran à partir d’un WMODE qui ne prend pas en charge la vidéo sur la scène, la vidéo sur la scène peut devenir disponible. De même, si l’utilisateur quitte le mode plein écran, la vidéo sur la scène peut devenir indisponible. Dans ces cas, l’objet vectoriel Stage.stageVideos change. Pour recevoir une notification de ce changement, écoutez l’événement StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABITY. REMARQUE : cette notification n’est pas disponible dans AIR 2.5 pour TV.
Informations complémentaires
Présentation des formats vidéo
Compatibilité de Flash Player et AIR avec les fichiers vidéo codés
Présentation des formats de fichiers vidéo Adobe F4V et FLV
Rubriques avancées relatives aux fichiers vidéo
Exemple vidéo : Video Jukebox
Présentation à accélération matérielle par le biais de la classe StageVideo
Utilisation de la classe StageVideo pour le rendu par accélération matérielle
Eléments de l’API associés
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
Propriété | Défini par | ||
---|---|---|---|
colorSpaces : Vector.<String> [lecture seule]
Renvoie les noms des espaces colorimétriques disponibles pour cette surface vidéo. | StageVideo | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
depth : int
Niveau de profondeur d’un objet StageVideo par rapport à d’autres objets StageVideo. | StageVideo | ||
pan : Point
Réglage panoramique pour afficher la vidéo, spécifié en tant qu’objet Point. | StageVideo | ||
videoHeight : int [lecture seule]
Nombre entier spécifiant la hauteur en pixels du flux vidéo. | StageVideo | ||
videoWidth : int [lecture seule]
Nombre entier spécifiant la largeur en pixels du flux vidéo. | StageVideo | ||
viewPort : Rectangle
Position absolue et dimension de la surface vidéo, en pixels. | StageVideo | ||
zoom : Point
Paramètre de zoom de la vidéo, spécifié en tant qu’objet Point. | StageVideo |
Méthode | Défini par | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Spécifie le flux vidéo provenant d’une caméra à afficher dans le cadre de l’objet StageVideo de l’application, en utilisant le GPU pour le rendu. | StageVideo | ||
Spécifie un flux vidéo à afficher dans le cadre de l’objet StageVideo dans l’application. | StageVideo | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
Evénement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher | |||
Distribué par l’objet StageVideo lorsque l’état du rendu de l’objet StageVideo change. | StageVideo |
colorSpaces | propriété |
colorSpaces:Vector.<String>
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Renvoie les noms des espaces colorimétriques disponibles pour cette surface vidéo. En règle générale, cette liste inclut "BT.601" et "BT.709". Sur certaines configurations, seul "BT.601" est pris en charge, ce qui signifie qu’une vidéo n’est peut-être pas rendue dans l’espace colorimétrique approprié.
Remarque : sur les périphériques AIR pour TV, une valeur de "BT.601" indique une lecture logicielle et une valeur de "BT.709" une lecture matérielle.
Implémentation
public function get colorSpaces():Vector.<String>
depth | propriété |
depth:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Niveau de profondeur d’un objet StageVideo par rapport à d’autres objets StageVideo.
Les objets StageVideo s’affichent toujours derrière d’autres objets sur la scène. Si une plate-forme prend en charge plusieurs objets StageVideo, la propriété depth
indique le niveau de profondeur d’un objet StageVideo. La propriété depth
de l’objet StageVideo inférieur a la plus petite valeur. Si le même paramètre de profondeur est défini sur plusieurs objets StageVideo, l’ordre d’affichage de ces objets dans l’objet vectoriel Stage.stageVideos
détermine leur profondeur relative.
Remarque : les périphériques AIR pour TV ne prennent en charge qu’un seul objet StageVideo. Par conséquent, cette propriété n’est pas applicable à ces périphériques.
Implémentation
public function get depth():int
public function set depth(value:int):void
Eléments de l’API associés
pan | propriété |
pan:Point
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Réglage panoramique pour afficher la vidéo, spécifié en tant qu’objet Point.
Par défaut, la valeur pan
est de (0,0)
. Cette valeur par défaut centre la vidéo dans le rectangle spécifié par StageVideo.viewPort
.
La valeur pan
est significative uniquement lorsque la valeur de la propriété zoom
n’est pas la valeur par défaut (1.0, 1.0)
. Lorsqu’une vidéo s’affiche dans le rectangle StageVideo.viewPort
avec la valeur zoom
par défaut, la plate-forme dimensionne la vidéo pour la faire tenir exactement dans le rectangle. L’intégralité de la vidéo est donc visible. Toutefois, si un facteur de zoom est spécifié, la vidéo n’est pas visible dans son intégralité. Dans ce cas, vous pouvez définir la valeur pan
pour indiquer le sous-rectangle de la vidéo à afficher dans le rectangle StageVideo.viewPort
.
Les valeurs valides de la propriété pan
sont comprises entre (-1.0, -1.0)
et (1.0, 1.0)
. Plus précisément :
-
Une valeur
pan
de(-1.0, -1.0)
place le pixel supérieur gauche de la vidéo dans le coin supérieur gauche du rectangleStageVideo.viewPort
. -
Une valeur
pan
de(1.0, 1.0)
place le pixel inférieur droit de la vidéo dans le coin inférieur droit du rectangleStageVideo.viewPort
. -
Une valeur
pan
de(1.0, -1.0)
place le pixel supérieur droit de la vidéo dans le coin supérieur droit du rectangleStageVideo.viewPort
. -
Une valeur
pan
de(-1.0, 1.0)
place le pixel inférieur gauche de la vidéo dans le coin inférieur gauche du rectangleStageVideo.viewPort
.
Valeurs de panoramique comprises entre -1.0 et 1.0 selon l’échelle.
Si vous définissez la propriété pan
sur une valeur en dehors de la plage valide, une exception RangeError
est renvoyée. Le moteur d’exécution rétablit la dernière valeur valide.
En outre, n’oubliez pas que pour utiliser un objet StageVideo, vous devez affecter un élément de l’objet vectoriel Stage.stageVideos
à une variable StageVideo. Lorsque vous définissez la propriété pan
de la variable StageVideo, l’élément vectoriel Stage.stageVideos
sous-jacent est également modifié. Si, par la suite, vous affectez cet élément à une autre variable StageVideo pour lire une autre vidéo, réinitialisez la propriété pan
.
Implémentation
public function get pan():Point
public function set pan(value:Point):void
Valeur émise
RangeError — La valeur Point n’est pas valide.
|
Eléments de l’API associés
videoHeight | propriété |
videoHeight:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Nombre entier spécifiant la hauteur en pixels du flux vidéo.
Vous pouvez utiliser cette propriété, notamment pour garantir que l’utilisateur regarde la vidéo à la même hauteur que celle à laquelle elle a été capturée, quel que soit le format du rectangle StageVideo.viewPort
.
Implémentation
public function get videoHeight():int
videoWidth | propriété |
videoWidth:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Nombre entier spécifiant la largeur en pixels du flux vidéo.
Vous pouvez utiliser cette propriété, notamment pour garantir que l’utilisateur regarde la vidéo à la même largeur que celle à laquelle elle a été capturée, quel que soit le format du rectangle StageVideo.viewPort
.
Implémentation
public function get videoWidth():int
viewPort | propriété |
viewPort:Rectangle
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Position absolue et dimension de la surface vidéo, en pixels.
La position de la vidéo est calculée par rapport au coin supérieur gauche de la scène.
Les valeurs valides des propriétés x
et y
de l’objet Rectangle viewPort
sont comprises entre -8192 et 8191. Par conséquent, vous pouvez positionner la vidéo entièrement ou partiellement hors de la scène. Vous pouvez également faire en sorte que la vidéo soit plus grande que la scène en définissant les propriétés width
et height
de l’objet viewPort
sur des valeurs supérieures à celles de la scène.
Implémentation
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
Valeur émise
RangeError — La valeur Rectangle n’est pas valide.
|
zoom | propriété |
zoom:Point
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Paramètre de zoom de la vidéo, spécifié en tant qu’objet Point.
Le point de zoom est un facteur d’échelle. Par défaut, la valeur zoom
est de (1.0, 1.0)
. Cette valeur par défaut affiche l’intégralité de la vidéo dans le rectangle StageVideo.viewPort
.
Les valeurs valides de la propriété zoom
sont comprises entre (1.0, 1.0)
et (8.0, 8.0)
. La propriété x
de l’objet Point de type zoom spécifie la valeur de zoom des pixels horizontaux, et la propriété y la valeur de zoom des pixels verticaux.
Par exemple, une valeur zoom
de (2.0, 2.0)
affiche uniquement la moitié des pixels horizontaux et la moitié des pixels verticaux dans le rectangle StageVideo.viewPort
. En d’autres termes, la vidéo remplit occupe encore le rectangle StageVideo.viewPort
, mais seule la moitié de la vidéo est visible, ce qui crée un effet de zoom x2. De même, une valeur zoom
de (8.0, 8.0)
affiche uniquement 1/8 des pixels horizontaux et 1/8 des pixels verticaux dans le rectangle StageVideo.viewPort
, ce qui permet d’effectuer un zoom avant sur la valeur maximale x8.
Lorsque vous définissez la propriété zoom
, définissez la propriété pan
de sorte que le rectangle StageVideo.viewPort
affiche le sous-rectangle approprié de la vidéo.
Envisagez la situation suivante, où il est utile de définir une valeur différente pour les propriétés x
et y
de l’objet Point de type zoom
. Notez tout d’abord que lorsqu’une vidéo s’affiche dans le rectangle StageVideo.viewPort
avec la valeur zoom
par défaut, la plate-forme dimensionne la vidéo pour la faire tenir exactement dans le rectangle. Si le rectangle de la vidéo n’est pas mis à l’échelle uniformément dans le rectangle StageVideo.viewPort
, il est possible que l’affichage vidéo soit déformé. En d’autres termes, les formats de la vidéo et le rectangle StageVideo.viewPort
ne sont pas égaux. Ce cas de figure peut se présenter si, par exemple, la largeur de la vidéo est différente de la hauteur alors que la propriété StageVideo.viewPort
spécifie un carré. Pour corriger la déformation, définissez différentes valeurs pour les propriétés x
et y
de l’objet Point de type zoom
. Définissez ensuite la propriété pan
pour vous assurer que le rectangle StageVideo.viewPort
affiche le sous-rectangle approprié de la vidéo.
Si vous définissez la propriété zoom
sur une valeur en dehors de la plage valide, une exceptionRangeError
est renvoyée. Le moteur d’exécution rétablit la dernière valeur valide.
En outre, n’oubliez pas que pour utiliser un objet StageVideo, vous devez affecter un élément de l’objet vectoriel Stage.stageVideos
à une variable StageVideo. Lorsque vous définissez la propriété zoom
de la variable StageVideo, l’élément vectoriel Stage.stageVideos
sous-jacent est également modifié. Si, par la suite, vous affectez cet élément à une autre variable StageVideo pour lire une autre vidéo, réinitialisez la propriété zoom
.
Implémentation
public function get zoom():Point
public function set zoom(value:Point):void
Valeur émise
RangeError — La valeur Point n’est pas valide.
|
Eléments de l’API associés
attachCamera | () | méthode |
public function attachCamera(theCamera:Camera):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Spécifie le flux vidéo provenant d’une caméra à afficher dans le cadre de l’objet StageVideo de l’application, en utilisant le GPU pour le rendu.
Remarque : StageVideo pour caméra n’est pas pris en charge sur Android.
Utilisez cette méthode pour associer une vidéo en direct capturée par l’utilisateur à l’objet StageVideo. Pour annuler la connexion à l’objet StageVideo, transmettez null
.
Paramètres
theCamera:Camera — Objet Camera qui capture des données vidéo.
|
Eléments de l’API associés
attachNetStream | () | méthode |
public function attachNetStream(netStream:NetStream):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Spécifie un flux vidéo à afficher dans le cadre de l’objet StageVideo dans l’application. Le flux vidéo est soit un fichier vidéo lu avec NetStream.play(), soit null
. Il est possible de stocker un fichier vidéo sur le système de fichiers local ou sur le serveur Flash Media Server. Si la valeur de l’argument netStream
correspond à null
, la vidéo n’est plus lue dans l’objet StageVideo.
Avant d’appeler attachNetStream()
une deuxième fois, appelez la méthode close()
de l’objet NetStream actuellement associé. L’appel de la méthode close()
libère toutes les ressources, y compris les décodeurs matériels, ayant contribué à la lecture de la vidéo. Vous pouvez ensuite appeler la méthode attachNetStream()
avec un autre objet NetStream ou avec null
.
Il n’est pas nécessaire d’utiliser cette méthode si un fichier vidéo contient uniquement des données audio ; la partie audio d’un fichier vidéo est automatiquement lue lors de l’appel de la méthode NetStream.play()
. Pour contrôler les données audio associées à un fichier vidéo, utilisez la propriété soundTransform
de l’objet NetStream qui lit le fichier vidéo.
Paramètres
netStream:NetStream — Objet NetStream. Pour annuler la connexion à l’objet StageVideo, transmettez null .
|
renderState | Evénement |
flash.events.StageVideoEvent
propriété StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5, Flash Player 10.2 |
Distribué par l’objet StageVideo lorsque l’état du rendu de l’objet StageVideo change.
La constanteStageVideoEvent.RENDER_STATE
définit la valeur de la propriété type
d’un objet d’événement renderState
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
colorSpace | Espaces colorimétriques disponibles pour afficher la vidéo. |
currentTarget | Objet qui traite activement l’objet StageVideoEvent avec un écouteur d’événement. |
status | Indique si le matériel ou le logiciel effectuent actuellement le rendu de la vidéo (c’est-à-dire la décode, puis l’affiche) ou pas. |
target | Objet StageVideo dont l’état a changé. |
Tue Jun 12 2018, 09:30 AM Z