Package | flash.net |
Classe | public class NetStream |
Héritage | NetStream EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Utilisez la classe NetStream pour effectuer les opérations suivantes :
- Appelez
NetStream.play()
pour lire un fichier multimédia à partir d’un disque local, d’un serveur Web ou de Flash Media Server. - Appelez
NetStream.publish()
pour publier des données vidéo, des données audio et un flux de données dans Flash Media Server. - Appelez
NetStream.send()
pour envoyer des messages de données à tous les clients abonnés. - Appelez
NetStream.send()
pour ajouter des métadonnées à un flux en direct. - Appelez
NetStream.appendBytes()
pour transmettre les données ByteArray dans l’objet NetStream.
Remarque : vous ne pouvez pas afficher ni publier un flux de données sur le même objet NetStream.
Adobe AIR, ainsi que Flash Player 9.0.115.0 et les versions ultérieures, prennent en charge les fichiers dérivés du format conteneur standard MPEG-4. Ces fichiers sont les suivants : F4V, MP4, M4A, MOV, MP4V, 3GP et 3G2, s’ils contiennent des images H.264 ou du son codé au format HEAAC v2, ou les deux. H.264 produit une qualité vidéo supérieure à une vitesse de transmission inférieure par rapport au même profil d’encodage dans Sorenson ou On2. AAC est un format audio standard défini dans la norme vidéo MPEG-4. HE-AAC v2 est une extension du format AAC qui utilise les techniques de réplique spectrale de bande (SBR - Spectral Band Replication) et de stéréo paramétrique pour optimiser l’efficacité de l’encodage à des vitesses de transmission inférieures.
Pour plus d’informations sur les codecs et les formats de fichier pris en charge, voir les références suivantes :
- Documentation de Flash Media Server
- Exploration de la prise en charge de Flash Player pour l’audio AAC et la vidéo H.264 haute définition
- FLV/F4V open specification documents (disponible en anglais uniquement)
Réception de données à partir d’un flux Flash Media Server, d’un fichier F4V ou d’un fichier FLV progressif
Flash Media Server, les fichiers F4V et les fichiers FLV peuvent envoyer des objets d’événement contenant des données à des points de données spécifiques pendant la diffusion ou la lecture. Vous pouvez gérer les données d’un flux ou d’un fichier FLV pendant la lecture de deux manières :
-
Associez une propriété client à un gestionnaire d’événement pour recevoir l’objet de données. Utilisez la propriété
NetStream.client
pour affecter un objet appelant des fonctions de gestion de données spécifiques. L’objet affecté à la propriétéNetStream.client
peut écouter les points de données suivants :onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
etonXMPData()
. Ecrivez des procédures au sein de ces fonctions pour gérer l’objet de données renvoyé par le flux pendant la lecture. Pour plus d’informations, voir la propriétéNetStream.client
. - Associez une propriété client à une sous-classe de la classe NetStream, puis écrivez un gestionnaire d’événement pour recevoir l’objet de données. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Vous pouvez cependant créer une sous-classe de NetStream et définir votre gestionnaire d’événement dans la sous-classe. Vous pouvez par ailleurs faire de cette dernière une sous-classe dynamique et ajouter le gestionnaire d’événement à une occurrence de la sous-classe.
Attendez de recevoir un événement NetGroup.Neighbor.Connect
avant d’utiliser la réplication d’objets, le routage direct ou les API de publication.
Remarque : pour envoyer des données par l’intermédiaire d’un fichier audio, tel qu’un fichier MP3, utilisez la classe Sound pour associer le fichier audio à un objet Sound. Ensuite, utilisez la propriété Sound.id3
pour lire les métadonnées dans le fichier audio.
Prise en charge de vidéos codées en H. 264 dans AIR for iOS
Pour les vidéos H. 264, AIR 3.0 for iOS et les versions ultérieures prennent en charge un sous-ensemble d’API NetStream. Le tableau ci-dessous répertorie les membres NetStream pour la lecture qui ne sont pas pris en charge dans AIR for iOS :
Propriétés non prises en charge | Méthodes non prises en charge | Evénements non pris en charge |
---|---|---|
bufferTime | appendBytes() | onCuePoint (fonctionne uniquement avec les fichiers FLV) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | step() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | Code d’événement d’état DRM.encryptedFLV | |
maxPauseBufferTime | ||
soundTransform | ||
Toutes les propriétés décrivant des connexions RTMFP |
Pour plus d’informations sur l’utilisation d’AIR pour iOS, voir la méthode NetStream.play()
.
Plus d’exemples
Contrôle de la lecture de la vidéo
Détection de la fin d’un flux vidéo
Présentation des points de repère
Ecriture de méthodes de rappel pour les métadonnées et les points de repère
Utilisation des points de repère et des métadonnées
Gestion de l’activité de l’objet NetStream
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
Lecture de vidéos en mode plein écran
Lecture de fichiers vidéo en flux continu
Rubriques avancées relatives aux fichiers vidéo
Exemple vidéo : Video Jukebox
Utilisation de la gestion des droits d’auteur numériques (DRM)
Présentation du flux de travail associé au contenu protégé
Membres et événements DRM de la classe NetStream
Utilisation de la classe DRMAuthenticateEvent
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
audioReliable : Boolean
Pour les connexions RTMFP, indique si le son est envoyé en toute fiabilité. | NetStream | ||
audioSampleAccess : Boolean
Pour les connexions RTMFP, indique si les abonnés homologue à homologue de ce flux de réseau sont autorisés à capturer le flux audio. | NetStream | ||
backBufferLength : Number [lecture seule]
Nombre de secondes des données précédemment affichées actuellement en cache pour le rembobinage et la lecture. | NetStream | ||
backBufferTime : Number
Spécifie la quantité de données précédemment affichées que Flash Player tente de mettre en mémoire cache pour le rembobinage et la lecture, en secondes. | NetStream | ||
bufferLength : Number [lecture seule]
Nombre de secondes de données enregistrées dans la mémoire tampon. | NetStream | ||
bufferTime : Number
Spécifie la durée de la mise en mémoire tampon des messages avant que l’affichage du flux ne commence. | NetStream | ||
bufferTimeMax : Number
Spécifie une longueur de mémoire tampon maximale pour le contenu de flux continu en direct, en secondes. | NetStream | ||
bytesLoaded : uint [lecture seule]
Nombre d’octets de données ayant été chargés dans l’application. | NetStream | ||
bytesTotal : uint [lecture seule]
Taille totale, en octets, du fichier chargé dans l’application. | NetStream | ||
checkPolicyFile : Boolean
Spécifie si l’application tente de télécharger un fichier de régulation interdomaines à partir du serveur du fichier vidéo chargé avant de commencer à charger ce dernier. | NetStream | ||
client : Object
Spécifie l’objet sur lequel les méthodes de rappel sont invoquées pour gérer la diffusion en continue ou les données des fichiers FLV/F4V. | NetStream | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
currentFPS : Number [lecture seule]
Nombre d’images affichées par seconde. | NetStream | ||
dataReliable : Boolean
Pour les connexions RTMFP, indique si les appels de la méthode NetStream.send() sont envoyés en toute fiabilité. | NetStream | ||
farID : String [lecture seule]
Pour les connexions RTMFP, l’identifiant de l’extrémité connectée à cette occurrence de NetStream. | NetStream | ||
farNonce : String [lecture seule]
Pour les connexions RTMFP et RTMPE, une valeur choisie fondamentalement par l’autre extrémité de ce flux, unique à cette connexion. | NetStream | ||
inBufferSeek : Boolean
Indique si les données affichées sont mises en cache pour la recherche dynamique (TRUE) ou non (FALSE). | NetStream | ||
info : NetStreamInfo [lecture seule]
Renvoie un objet NetStreamInfo dont les propriétés contiennent des statistiques sur la qualité de service. | NetStream | ||
liveDelay : Number [lecture seule]
Nombre de secondes de données enregistrées dans le tampon du flux abonné en mode en direct (sans mise en mémoire tampon). | NetStream | ||
maxPauseBufferTime : Number
Spécifie la durée de la mise en tampon des messages pendant le mode pause, en secondes. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
Pour les connexions RTMFP, indique si les messages de disponibilité des fragments de multidiffusion homologue à homologue sont envoyés à tous les homologues ou à un seul homologue. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
Pour les connexions RTMFP, spécifie l’intervalle, en secondes, entre les messages envoyés aux homologues les informant que le nœud local dispose de nouveaux fragments multimédias de multidiffusion homologue à homologue. | NetStream | ||
multicastFetchPeriod : Number
Pour les connexions RTMFP, spécifie la durée, en secondes, entre le moment où le nœud local apprend qu’un fragment multimédia de multidiffusion homologue à homologue est disponible et le moment où il tente d’extraire ce fragment d’un homologue. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [lecture seule]
Pour les connexions RTMFP, renvoie un objet NetStreamMulticastInfo dont les propriétés contiennent des statistiques sur la qualité du service. | NetStream | ||
multicastPushNeighborLimit : Number
Pour les connexions RTMFP, spécifie le nombre maximum d’homologues auxquels envoyer les fragments multimédias de multidiffusion. | NetStream | ||
multicastRelayMarginDuration : Number
Pour les connexions RTMFP, spécifie la durée, en secondes, pendant laquelle les données de multidiffusion homologue à homologue sont disponibles aux homologues qui souhaitent procéder à leur envoi au-delà d’une durée spécifiée. | NetStream | ||
multicastWindowDuration : Number
Pour les connexions RTMFP, spécifie la durée, en secondes, de la fenêtre de réassamblage multidiffusion homologue à homologue. | NetStream | ||
nearNonce : String [lecture seule]
Pour les connexions RTMFP et RTMPE, une valeur choisie fondamentalement par cette extrémité du flux, unique à cette connexion. | NetStream | ||
objectEncoding : uint [lecture seule]
Encodage d’objet (version AMF) de cet objet NetStream. | NetStream | ||
peerStreams : Array [lecture seule]
Objet qui détient toutes les occurrences NetStream d’abonnement qui écoutent cette occurrence de NetStream de publication. | NetStream | ||
soundTransform : flash.media:SoundTransform
Contrôle le son dans l’objet NetStream. | NetStream | ||
time : Number [lecture seule]
Position de la tête de lecture, en secondes. | NetStream | ||
useHardwareDecoder : Boolean
Indique s’il convient d’utiliser le décodage par accélération matérielle sur le flux. | NetStream | ||
useJitterBuffer : Boolean
Réduit la latence la diffusion en continu en direct non mise en tampon (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
Pour les connexions RTMFP, indique si les données vidéo sont envoyées en toute fiabilité. | NetStream | ||
videoSampleAccess : Boolean
Pour les connexions RTMFP, indique si les abonnés homologue à homologue de ce flux de réseau sont autorisés à capturer le flux vidéo. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Spécifiez les propriétés de compression du flux. | NetStream |
Méthode | Défini par | ||
---|---|---|---|
Crée un flux qui permet de lire des fichiers multimédias et d’envoyer des données sur un objet NetConnection. | NetStream | ||
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 | ||
Transmet un ByteArray à un NetStream pour la lecture. | NetStream | ||
Indique une discontinuité dans l’échelle de temps, vide le contenu de la FIFO et demande à l’analyseur d’octets de prévoir un en-tête de fichier ou le début d’une balise FLV. | NetStream | ||
Joint un flux à un nouvel objet NetConnection. | NetStream | ||
Associe un flux audio à un objet NetStream à partir d’un objet Microphone transmis en tant que source. | NetStream | ||
Démarre la capture vidéo à partir de la caméra ou arrête la capture si theCamera est défini sur null. | NetStream | ||
Arrête la lecture des données du flux, définit la propriété time sur 0 et met le flux à disposition. | NetStream | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Libère tous les ressources détenues par l'objet NetStream. | NetStream | ||
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 | ||
Invoqué lorsqu’un flux d’homologue éditeur correspond à un flux d’homologue abonné. | NetStream | ||
Interrompt la lecture d’un flux vidéo. | NetStream | ||
Lit un fichier multimédia à partir d’un répertoire local ou d’un serveur Web ; lit un fichier multimédia ou un flux en direct depuis Flash Media Server. | NetStream | ||
Commute en toute transparence les fichiers dont les vitesses de transmission sont différentes et permet la reprise d’un NetStream lorsque la connexion est abandonnée, puis rétablie. | NetStream | ||
Extrait les métadonnées DRM d’un fichier multimédia enregistré localement. | NetStream | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Envoie des données audio et vidéo, ainsi que des messages de données en diffusion continue à partir d’un client et à destination de Flash Media Server, tout en laissant la possibilité d’enregistrer ce flux pendant la transmission. | NetStream | ||
Indique si les données audio entrantes sont lues dans le flux continu. | NetStream | ||
Indique si les données vidéo entrantes sont lues sur le flux continu. | NetStream | ||
Indique la cadence des données vidéo entrantes. | NetStream | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
[statique]
Dans les applications AIR, cette opération supprime toutes les données du voucher de gestion des droits numériques (DRM) mises en cache localement. | NetStream | ||
Reprend la lecture d’un flux vidéo en pause. | NetStream | ||
Recherche l’image-clé (également appelée Image-I dans l’industrie vidéo) la plus proche de l’emplacement spécifié. | NetStream | ||
Envoie un message sur le flux publié à tous les clients abonnés. | NetStream | ||
Définit les informations d’authentification de la gestion des droits numériques nécessaires à l’affichage du contenu chiffré sous-jacent. | NetStream | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Recule ou avance du nombre d’images spécifié à partir de l’image actuellement affichée. | NetStream | ||
Interrompt ou reprend la lecture d’un flux continu. | NetStream | ||
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 | |||
Distribué lorsqu’une erreur est renvoyée de manière asynchrone ; autrement dit, lorsqu’elle provient du code asynchrone natif. | NetStream | |||
[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é lorsqu’un objet NetStream tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) nécessitant l’obtention d’informations d’identification pour authentifier l’utilisateur avant la lecture. | NetStream | |||
Distribué lorsqu’un objet NetStream qui tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) rencontre une erreur de type DRM. | NetStream | |||
Distribué lorsque la lecture du contenu chiffré à l’aide de la gestion des droits numériques (DRM) commence, c’est-à-dire lorsque l’utilisateur est authentifié et autorisé à lire le contenu. | NetStream | |||
Distribué lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération réseau. | NetStream | |||
Distribué lors de la lecture de contenu vidéo et du traitement de certains types de messages. | NetStream | |||
Distribué lorsqu’un objet NetStream publie son état ou signale une erreur. | NetStream | |||
Etablit un écouteur pour qu’il réponde lorsqu’un point de repère intégré est atteint pendant la lecture d’un fichier vidéo. | NetStream | |||
Etablit un écouteur pour répondre lorsque AIR extrait les métadonnées de contenu DRM intégrées dans un fichier multimédia. | NetStream | |||
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit des données d’images sous forme de tableau d’octets intégré dans un fichier multimédia en cours de lecture. | NetStream | |||
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit une description intégrée à la vidéo en cours de lecture. | NetStream | |||
Etablit un écouteur pour qu’il réponde lorsque un objet NetStream a terminé la lecture d’un flux. | NetStream | |||
Appelée de façon synchrone par appendBytes() lorsque l’analyseur d’octets détecte un point pouvant faire l’objet d’une recherche (par exemple, une image-clé vidéo). | NetStream | |||
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit des données texte intégrées dans un fichier multimédia en cours de lecture. | NetStream | |||
Définit un écouteur pour qu’il réponde lorsque Flash Player reçoit des informations spécifiques à XMP (Extensible Metadata Platform) d’Adobe, intégrées à la vidéo lue. | NetStream | |||
Distribué lorsque l’application tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) en appelant la méthode NetStream.play(). | NetStream |
Constante | Défini par | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [statique]
Objet statique utilisé comme paramètre pour le constructeur d’une occurrence de NetStream. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [statique]
Crée une connexion d’éditeur homologue à homologue. | NetStream |
audioReliable | propriété |
audioReliable:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si le son est envoyé en toute fiabilité. Lorsque cette propriété est définie sur TRUE, toutes les données audio transmises sur ce NetStream sont totalement fiables. Si elle est définie sur FALSE, les données audio transmises ne sont pas totalement fiables ; elles sont retransmises pour une durée limitée, puis abandonnées. Vous pouvez utiliser la valeur FALSE pour réduire le temps d’attente au détriment de la qualité audio.
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Eléments de l’API associés
audioSampleAccess | propriété |
audioSampleAccess:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si les abonnés homologue à homologue de ce flux de réseau sont autorisés à capturer le flux audio. Lorsque la valeur FALSE est définie, l’abonné tente de capturer le flux audio pour afficher les erreurs d’autorisation.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Eléments de l’API associés
backBufferLength | propriété |
backBufferLength:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Nombre de secondes des données précédemment affichées actuellement en cache pour le rembobinage et la lecture.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Cette propriété est disponible uniquement lorsque des données sont diffusées en flux continu à partir de Flash Media Server 3.5.3 ou version ultérieure. Pour plus d’informations sur Flash Media Server, voir la description de la classe.
Pour spécifier la quantité de données précédemment affichées mises en cache, utilisez la propriété Netstream.backBufferTime
.
Pour éviter la mise en cache des données, définissez la propriété Netstream.inBufferSeek
sur FALSE.
Implémentation
public function get backBufferLength():Number
Eléments de l’API associés
backBufferTime | propriété |
backBufferTime:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Spécifie la quantité de données précédemment affichées que Flash Player tente de mettre en mémoire cache pour le rembobinage et la lecture, en secondes. La valeur par défaut est de 30 secondes pour les applications de bureau et de 3 secondes pour les applications mobiles.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Cette propriété est disponible uniquement lorsque des données sont diffusées en flux continu à partir de Flash Media Server 3.5.3 ou version ultérieure. Pour plus d’informations sur Flash Media Server, voir la description de la classe.
L’utilisation de cette propriété améliore les performances des opérations de rembobinage, car les données qui ont déjà été affichées ne sont pas à nouveau extraites du serveur. Au contraire, le flux continu lance la relecture depuis la mémoire tampon. Lors de la lecture, la diffusion en continu des données se poursuit depuis le serveur jusqu’à ce que la mémoire tampon soit pleine.
Si la position de rembobinage est plus éloignée que les données dans la mémoire cache, la mémoire tampon est nettoyée ; la diffusion en continu des données commence depuis le serveur à la position requise.
Pour utiliser cette propriété, définissez la propriété Netstream.inBufferSeek
sur TRUE.
Implémentation
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Eléments de l’API associés
bufferLength | propriété |
bufferLength:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nombre de secondes de données enregistrées dans la mémoire tampon. Vous pouvez utiliser cette propriété conjointement avec bufferTime
pour estimer le niveau de remplissage du tampon ; par exemple, pour indiquer ce niveau à un utilisateur qui attend la fin du chargement des données dans le tampon.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get bufferLength():Number
Eléments de l’API associés
bufferTime | propriété |
bufferTime:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie la durée de la mise en mémoire tampon des messages avant que l’affichage du flux ne commence.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
La valeur par défaut est 0.1 (un dixième de seconde). Pour déterminer le nombre de secondes actuellement dans la mémoire tampon, utilisez la propriété bufferLength
.
Pour lire une liste de lecture côté serveur, définissez bufferTime
sur au moins 1 seconde. Si vous rencontrez des problèmes de lecture, augmentez la durée de la propriété bufferTime
.
Contenu enregistré Pour éviter toute distorsion lors de la diffusion de contenu pré-enregistré (pas en direct), ne réglez pas la valeur de Netstream.bufferTime
sur 0. Par défaut, l’application utilise un tampon d’entrée pour le contenu préenregistré qui met les données en file d’attente et lit le fichier correctement. Pour le contenu préenregistré, utilisez le paramétrage par défaut ou augmentez la durée du tampon.
Contenu en direct Lors de la diffusion de contenu en direct, définissez la propriété bufferTime
sur 0.
Depuis Flash Player 9.0.115.0, le lecteur n’efface plus la mémoire tampon lors de l’appel de NetStream.pause()
. Avant Flash Player 9.0.115.0, le lecteur attendait le remplissage du tampon avant de reprendre la lecture, ce qui entraînait souvent des retards.
En cas d’interruption unique, la propriété NetStream.bufferLength
possède une limite de 60 secondes ou de deux fois la valeur de NetStream.bufferTime
(la limite supérieure est prise en compte). Par exemple, si la propriété bufferTime
est de 20 secondes, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la propriété NetStream.bufferLength
corresponde à la valeur la plus élevée de 20*2 (c’est-à-dire 40), ou à la valeur 60 ; dans ce cas, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la valeur de bufferLength
corresponde à 60. Si la propriété bufferTime
est de 40 secondes, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la propriété bufferLength
corresponde à la valeur la plus élevée de 40*2 (c’est-à-dire 80), ou à la valeur 60 ; dans ce cas, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la valeur de bufferLength
corresponde à 80.
La propriété bufferLength
possède en outre une limite absolue. Si un appel à pause()
provoque l’augmentation de bufferLength
de plus de 600 secondes, ou la valeur de plus élevée de bufferTime
* 2, Flash Player efface le contenu de la mémoire tampon et remet à zéro bufferLength
. Par exemple, si la propriété bufferTime
est de 120 secondes, Flash Player efface le contenu de la mémoire tampon si la propriété bufferLength
atteint 600 secondes ; si bufferTime
est de 360 secondes, Flash Player efface le contenu de la mémoire tampon si bufferLength
atteint 720 secondes.
Conseil : vous pouvez utiliser NetStream.pause()
dans le code pour mettre les données en mémoire tampon pendant que les spectateurs regardent une annonce publicitaire, par exemple, puis annuler l’interruption lorsque la vidéo principale démarre.
Pour plus d’informations sur le nouveau comportement d’interruption, voir la page http://www.adobe.com/go/learn_fms_smartpause_fr.
Flash Media Server. Le comportement du tampon varie en fonction de la définition de la durée du tampon : sur un flux de publication ou sur un flux d’abonnement. Dans le cas d’un flux de publication, bufferTime
spécifie la durée pendant laquelle le tampon sortant peut croître avant que l’application ne commence à abandonner des images. Dans le cas d’une connexion haut débit, la durée du tampon n’est pas un problème : les données sont envoyées presque aussi rapidement que l’application peut les mettre en mémoire tampon. Toutefois, dans le cas d’une connexion bas débit, il peut exister une différence considérable entre la vitesse à laquelle l’application place les données en mémoire tampon et celle à laquelle elles sont envoyées au client.
Dans le cas d’un flux d’abonnement, bufferTime
spécifie le délai pendant lequel les données entrantes doivent être mises en mémoire tampon avant que l’affichage du flux ne commence.
Lors de la lecture d’un flux enregistré, si bufferTime
est défini sur 0, Flash le définit sur une faible valeur (environ 10 millisecondes). Si des flux en direct sont ensuite lus (par exemple depuis une liste de lecture), cette durée de tampon persiste. Cela signifie que bufferTime
demeure non nul pour le flux.
Implémentation
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Eléments de l’API associés
bufferTimeMax | propriété |
bufferTimeMax:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Spécifie une longueur de mémoire tampon maximale pour le contenu de flux continu en direct, en secondes. La valeur par défaut est 0. La longueur de la mémoire tampon peut augmenter au fil du temps en raison de problèmes de mise en réseau et de périphérique (par exemple, décalage horaire entre l’expéditeur et le destinataire). Définissez cette propriété pour réduire la longueur de la mémoire tampon pour les applications en direct telles que réunions et surveillance vidéo.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Lorsque bufferTimeMax > 0
et bufferLength >= bufferTimeMax
, les données audio sont lues plus rapidement jusqu’à ce que bufferLength
atteigne bufferTime
. Si un flux en direct contient uniquement des données vidéo, la vidéo est lue plus rapidement jusqu’à ce que la propriété bufferLength
atteigne la propriété bufferTime
.
Selon le retard de la lecture (différence entre bufferLength
et bufferTime
), Flash Player maintient une vitesse de rattrapage comprise entre 1,5 % et 6,25 %. Si le flux contient des données audio, la lecture rapide est obtenue par sous-échantillonnage du domaine de la fréquence, qui minimise la distorsion audible.
Définissez la propriété bufferTimeMax
pour activer le rattrapage du flux mis en tampon en temps réel dans les cas suivants :
- Diffusion d’un support multimédia en direct depuis Flash Media Server.
- Diffusion d’un support multimédia en direct en mode de génération de données (
NetStream.appendBytes()
).
Implémentation
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Eléments de l’API associés
bytesLoaded | propriété |
bytesLoaded:uint
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nombre d’octets de données ayant été chargés dans l’application. Vous pouvez utiliser cette propriété conjointement avec bytesTotal
pour estimer le niveau de remplissage du tampon ; par exemple, pour indiquer ce niveau à un utilisateur qui attend la fin du chargement des données dans le tampon.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get bytesLoaded():uint
Eléments de l’API associés
bytesTotal | propriété |
checkPolicyFile | propriété |
checkPolicyFile:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Spécifie si l’application tente de télécharger un fichier de régulation interdomaines à partir du serveur du fichier vidéo chargé avant de commencer à charger ce dernier. Utilisez cette propriété pour télécharger progressivement des données vidéo et pour charger des fichiers se trouvant hors du domaine du fichier SWF appelant. Cette propriété est ignorée lors de l’utilisation de RTMP.
Définissez cette propriété sur true
pour appeler BitmapData.draw()
sur un fichier vidéo chargé à partir d’un domaine en dehors de celui du fichier SWF appelant. La méthode BitmapData.draw()
fournit un accès à la vidéo au niveau des pixels. Si vous appelez BitmapData.draw()
sans définir la propriété checkPolicyFile
sur true
au chargement, vous pouvez obtenir une exception SecurityError
, car le fichier de régulation requis n’a pas été téléchargé.
Ne définissez pas cette propriété sur true, sauf si vous souhaitez accéder à la vidéo en cours de chargement au niveau des pixels. La recherche d’un fichier de régulation consomme de la bande passante réseau et risque de retarder le début du téléchargement.
Lorsque vous appelez la méthode NetStream.play()
en définissant checkPolicyFile
sur true
, Flash Player ou le moteur d’exécution d’AIR doit télécharger un fichier de régulation interdomaines approprié ou déterminer qu’un tel fichier n’existe pas avant de commencer à le télécharger. Pour vérifier l’existence d’un fichier de régulation, Flash Player ou le moteur d’exécution AIR effectue les actions suivantes, dans l’ordre indiqué :
- L’application examine les fichiers de régulation préalablement téléchargés.
- L’application tente de télécharger tout fichier de régulation en attente spécifié dans les appels de la méthode
Security.loadPolicyFile()
. - L’application tente de télécharger un fichier de régulation à partir de l’emplacement par défaut qui correspond à l’URL que vous avez transmise à
NetStream.play()
, à savoir/crossdomain.xml
sur le même serveur que cette URL.
Dans tous les cas, Flash Player ou Adobe AIR exige que le serveur du fichier vidéo héberge un fichier de régulation approprié, que ce dernier permette d’accéder à l’objet à l’adresse URL que vous avez transmise à play()
sur la base de l’emplacement du fichier de régulation, et qu’il autorise le domaine du fichier de code appelant à accéder au fichier vidéo par le biais d’une ou plusieurs balises <allow-access-from>
.
Si vous définissez checkPolicyFile
sur true
, l’application attend la vérification du fichier de régulation avant de télécharger la vidéo. Avant de manipuler les données vidéo au niveau des pixels, en appelant BitmapData.draw()
, par exemple, attendez d’avoir reçu de votre objet NetStream des événements onMetaData
ou NetStatus
.
Si vous définissez checkPolicyFile
sur true
et qu’il n’existe aucun fichier de régulation approprié, vous ne recevez pas de message d’erreur tant que vous n’effectuez pas une opération nécessitant un tel fichier, auquel cas l’application renvoie une exception SecurityError.
Servez-vous de checkPolicyFile
avec précaution si vous téléchargez un fichier vidéo à partir d’une URL qui utilise des redirections HTTP côté serveur. L’application tente d’extraire les fichiers de régulation correspondant à l’URL spécifiée à l’origine dans NetStream.play()
. Si le fichier final provient d’une URL différente suite à des redirections HTTP, les fichiers de régulation initialement téléchargés peuvent ne pas être applicables à l’URL finale du fichier (URL qui doit faire l’objet des mesures de sécurité).
Pour plus d’informations sur les fichiers de régulation, voir la rubrique « Contrôles de site Web (fichiers de régulation) » dans le Guide du développeur d’ActionScript 3.0 , ainsi que la rubrique Sécurité du Pôle de développement Flash Player (disponible en anglais uniquement).
Implémentation
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Informations complémentaires
Eléments de l’API associés
client | propriété |
client:Object
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie l’objet sur lequel les méthodes de rappel sont invoquées pour gérer la diffusion en continue ou les données des fichiers FLV/F4V. L’objet par défaut correspond à this
, l’objet NetStream en cours de création. Si vous réglez la propriété client
sur un autre objet, les méthodes de rappel sont appelées sur celui-ci. L’objet NetStream.client
peut appeler les fonctions suivantes et recevoir un objet de données associé : onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
et onXMPData()
.
Pour associer la propriété client
à un gestionnaire d’événement :
- Créez un objet et affectez-le à la propriété
client
de l’objet NetStream :var customClient:Object = new Object(); my_netstream.client = customClient;
- Affectez une fonction de gestionnaire pour l’événement de données désiré en tant que propriété de l’objet client :
customClient.onImageData = onImageDataHandler;
- Ecrivez la fonction de gestionnaire pour recevoir l’objet d’événement de données, tel que :
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Lorsque les données sont transmises via le flux ou au cours de la lecture, l’objet d’événement de données (dans ce cas l’objet imageData
) est renseigné avec les données. Reportez-vous à la description de onImageData
, qui inclut un exemple complet d’objet affecté à la propriété client
.
Pour associer la propriété client
à une sous-classe :
- Créez une sous-classe avec une fonction de gestionnaire pour recevoir l’objet d’événement de données :
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Affectez une occurrence de la sous-classe à la propriété
client
de l’objet NetStream :my_netstream.client = new CustomClient();
Lorsque les données sont transmises via le flux ou au cours de la lecture, l’objet d’événement de données (dans ce cas l’objet info
) est renseigné avec les données. Reportez-vous à l’exemple de classe proposé à la fin de la classe NetStream, qui illustre l’affectation d’une occurrence de sous-classe à la propriété client
.
Implémentation
public function get client():Object
public function set client(value:Object):void
Valeur émise
TypeError — La propriété client ne peut pas être réglée sur l’objet null.
|
Eléments de l’API associés
currentFPS | propriété |
currentFPS:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nombre d’images affichées par seconde. Si vous exportez des fichiers vidéo pour les lire sur différents systèmes, vous pouvez vérifier cette valeur pendant le test afin de déterminer la compression à appliquer lors de l’exportation du fichier.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get currentFPS():Number
dataReliable | propriété |
dataReliable:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si les appels de la méthode NetStream.send()
sont envoyés en toute fiabilité. Lorsque la valeur TRUE est définie, les appels de la méthode NetStream.send()
transmis sur cet objet NetStream sont totalement fiables. Si la valeur est définie sur FALSE, les appels de la méthode NetStream.send()
ne sont pas transmis en toute fiabilité, mais sont retransmis pour une durée limitée, puis abandonnés. Vous pouvez définir cette valeur sur FALSE pour réduire le temps d’attente, au détriment de la qualité des données.
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Eléments de l’API associés
farID | propriété |
farID:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Pour les connexions RTMFP, l’identifiant de l’extrémité connectée à cette occurrence de NetStream.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get farID():String
farNonce | propriété |
farNonce:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Pour les connexions RTMFP et RTMPE, une valeur choisie fondamentalement par l’autre extrémité de ce flux, unique à cette connexion. Cette valeur apparaît à l’autre extrémité du flux en tant que valeur nearNonce
.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get farNonce():String
inBufferSeek | propriété |
inBufferSeek:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Indique si les données affichées sont mises en cache pour la recherche dynamique (TRUE
) ou non (FALSE
). La valeur par défaut est FALSE.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Flash Media Server 3.5.3 et Flash Player 10.1 collaborent pour prendre en charge la recherche dynamique. La recherche dynamique a recours à une mémoire tampon d’arrière-plan et à une mémoire tampon directe pour effectuer des recherches sans solliciter de données au serveur. La recherche standard efface les données placées en mémoire tampon et demande au serveur d’envoyer de nouvelles données en fonction du temps de recherche.
Appelez NetStream.step()
pour avancer ou reculer du nombre d’images spécifié. Appelez NetStream.seek()
pour effectuer une recherche vers l’avant ou vers l’arrière du nombre de secondes spécifié.
La recherche dynamique réduit la charge du serveur et améliore les performances de recherche. Définissez inBufferSeek=true
et appelez step()
et seek()
pour créer :
- Une fonctionnalité DVR côté client. Recherchez dans la mémoire tampon côté client au lieu d’accéder au serveur pour distribuer la nouvelle vidéo.
- Des modes de ruse. Créez des lecteurs qui permettent de parcourir les images, d’avancer et de revenir en arrière rapidement, et d’avancer au ralenti.
Lorsque inBufferSeek=true
et qu’un appel de NetStream.seek()
aboutit, la propriété info.description
de NetStatusEvent contient la chaîne "client-inBufferSeek"
.
Lorsqu’un appel de NetStream.step()
aboutit, la propriété info.code
de NetStatusEvent contient la chaîne "NetStream.Step.Notify"
.
Implémentation
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Eléments de l’API associés
info | propriété |
info:NetStreamInfo
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Renvoie un objet NetStreamInfo dont les propriétés contiennent des statistiques sur la qualité de service. L’objet est un instantané de l’état en cours.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get info():NetStreamInfo
Eléments de l’API associés
liveDelay | propriété |
liveDelay:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nombre de secondes de données enregistrées dans le tampon du flux abonné en mode en direct (sans mise en mémoire tampon). Cette propriété spécifie l’actuel délai de transmission réseau (retard).
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Cette propriété est surtout conçue pour une utilisation avec un serveur, tel que Flash Media Server. Pour plus d’informations, voir la description de la classe.
Vous pouvez extraire la valeur de cette propriété pour évaluer approximativement la qualité de transmission du flux continu, et la communiquer à l’utilisateur.
Implémentation
public function get liveDelay():Number
maxPauseBufferTime | propriété |
maxPauseBufferTime:Number
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Spécifie la durée de la mise en tampon des messages pendant le mode pause, en secondes. Cette propriété peut être utilisée pour limiter le volume de mise en mémoire tampon pendant le mode pause. Dès que la valeur NetStream.bufferLength
atteint cette limite, la mise en mémoire tampon s’arrête.
Si cette valeur n’est pas définie, la limite par défaut est de 60 secondes ou correspond à deux fois la valeur de NetStream.bufferTime
sur chaque pause (la valeur la plus élevée est prise en compte).
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Eléments de l’API associés
multicastAvailabilitySendToAll | propriété |
multicastAvailabilitySendToAll:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si les messages de disponibilité des fragments de multidiffusion homologue à homologue sont envoyés à tous les homologues ou à un seul homologue. La valeur TRUE indique que les messages sont envoyés une fois à tous les homologues en fonction de l’intervalle spécifié. La valeur FALSE indique que les messages sont envoyés uniquement à un seul homologue en fonction de l’intervalle spécifié. L’intervalle est déterminé par la propriété multicastAvailabilityUpdatePeriod
.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Eléments de l’API associés
multicastAvailabilityUpdatePeriod | propriété |
multicastAvailabilityUpdatePeriod:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, spécifie l’intervalle, en secondes, entre les messages envoyés aux homologues les informant que le nœud local dispose de nouveaux fragments multimédias de multidiffusion homologue à homologue. Des valeurs plus élevées peuvent augmenter l’efficacité du traitement par lots et réduire la surcharge de contrôle, mais risquent de diminuer la qualité à la réception en réduisant la durée disponible pour extraire les fragments avant qu’ils ne soient hors de la fenêtre. Des valeurs moins élevées peuvent réduire le temps d’attente et améliorer la qualité, mais risquent d’augmenter la surcharge de contrôle.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Eléments de l’API associés
multicastFetchPeriod | propriété |
multicastFetchPeriod:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, spécifie la durée, en secondes, entre le moment où le nœud local apprend qu’un fragment multimédia de multidiffusion homologue à homologue est disponible et le moment où il tente d’extraire ce fragment d’un homologue. Cette valeur donne la possibilité d’envoyer le fragment au nœud local de façon dynamique avant qu’un homologue ne tente une extraction. Elle permet également à plusieurs homologues d’annoncer la disponibilité du fragment, de manière à ce que le chargement de l’extraction puisse être réparti entre plusieurs homologues.
Des valeurs plus élevées peuvent améliorer l’équilibrage de charge et son équité dans le maillage homologue à homologue, mais réduire la multicastWindowDuration
et augmenter le temps d’attente. Des valeurs plus petites peuvent réduire le temps d’attente lorsque l’extraction est requise, mais risquent d’augmenter la réception des données dupliquées et de réduire l’équilibrage de charge du maillage homologue à homologue.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Eléments de l’API associés
multicastInfo | propriété |
multicastInfo:NetStreamMulticastInfo
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, renvoie un objet NetStreamMulticastInfo dont les propriétés contiennent des statistiques sur la qualité du service. L’objet est un instantané de l’état en cours.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastInfo():NetStreamMulticastInfo
Eléments de l’API associés
multicastPushNeighborLimit | propriété |
multicastPushNeighborLimit:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, spécifie le nombre maximum d’homologues auxquels envoyer les fragments multimédias de multidiffusion.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | propriété |
multicastRelayMarginDuration:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, spécifie la durée, en secondes, pendant laquelle les données de multidiffusion homologue à homologue sont disponibles aux homologues qui souhaitent procéder à leur envoi au-delà d’une durée spécifiée. La durée est spécifiée par la propriété multicastWindowDuration
.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Eléments de l’API associés
multicastWindowDuration | propriété |
multicastWindowDuration:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, spécifie la durée, en secondes, de la fenêtre de réassamblage multidiffusion homologue à homologue. Des valeurs plus petites réduisent le temps d’attente, mais risquent de réduire la qualité, car elles ne fournissent pas assez de temps pour obtenir tous les fragments. Inversement, des valeurs plus élevées peuvent augmenter la qualité en fournissant plus de temps pour obtenir tous les fragments tout en augmentant le temps d’attente.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Eléments de l’API associés
nearNonce | propriété |
nearNonce:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Pour les connexions RTMFP et RTMPE, une valeur choisie fondamentalement par cette extrémité du flux, unique à cette connexion. Cette valeur apparaît à l’autre extrémité du flux en tant que valeur farNonce
.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get nearNonce():String
objectEncoding | propriété |
objectEncoding:uint
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Encodage d’objet (version AMF) de cet objet NetStream. L’objet NetStream hérite de sa valeur objectEncoding
de l’objet NetConnection associé. Il est important de comprendre cette propriété si votre fichier SWF ActionScript 3.0 doit communiquer avec des serveurs antérieurs à Flash Player 9. Pour plus d’informations, voir la description de la propriété objectEncoding
dans la classe NetConnection.
La valeur de cette propriété varie selon la nature du flux continu, local ou distant. Les flux locaux, dans lesquels null
a été transmis à la méthode NetConnection.connect()
, renvoient la valeur de NetConnection.defaultObjectEncoding
. Les flux distants, pour lesquels vous êtes connecté(e) à un serveur, renvoient l’encodage d’objet de la connexion au serveur.
Si vous tentez de lire cette propriété sans être connecté ou si vous tentez de la modifier, l’application renvoie une exception.
Implémentation
public function get objectEncoding():uint
Eléments de l’API associés
peerStreams | propriété |
peerStreams:Array
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Objet qui détient toutes les occurrences NetStream d’abonnement qui écoutent cette occurrence de NetStream de publication.
Implémentation
public function get peerStreams():Array
soundTransform | propriété |
soundTransform:flash.media:SoundTransform
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Contrôle le son dans l’objet NetStream. Pour plus d’informations, voir la description de la classe SoundTransform.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Eléments de l’API associés
time | propriété |
time:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Position de la tête de lecture, en secondes.
Flash Media Server Dans le cas d’un flux d’abonnement, nombre de secondes pendant lequel le flux a été lu. Dans le cas d’un flux de publication, nombre de secondes pendant lequel le flux a été publié. Ce nombre est précis au millième près ; multipliez-le par 1000 pour obtenir le nombre de millisecondes pendant lequel le flux a été lu.
Dans le cas d’un flux d’abonnement, si le serveur cesse d’envoyer des données et que le flux demeure ouvert, la valeur de la propriété time
cesse d’avancer. Lorsque le serveur recommence à envoyer des données, la valeur continue d’avancer à partir du point où elle s’est arrêtée (c’est-à-dire lorsque le serveur a cessé l’envoi des données).
La valeur de la propriété time
continue d’avancer lorsque le flux bascule d’un élément de la liste de lecture à un autre. Cette propriété est définie sur 0 lorsque NetStream.play()
est appelé avec reset
défini sur 1
ou sur true
, ou lorsque NetStream.close()
est appelé.
Implémentation
public function get time():Number
Eléments de l’API associés
useHardwareDecoder | propriété |
useHardwareDecoder:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3 |
Indique s’il convient d’utiliser le décodage par accélération matérielle sur le flux.
Remarque : vous ne pouvez pas définir cette propriété pendant la lecture de la vidéo. Vous devez donc le faire avant d’appeler NetStream.play()
.
La valeur par défaut est true.
Implémentation
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Eléments de l’API associés
useJitterBuffer | propriété |
useJitterBuffer:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.3, AIR 3.3 |
Réduit la latence la diffusion en continu en direct non mise en tampon (bufferTime = 0). Au lieu d’utiliser des mécanismes de rattrapage basés sur une technologie push conservative, des messages audio sont placés dans un tampon de gigue adaptatif. Lorsque le périphérique de haut-parleur nécessite le son, les messages sont extraits du tampon de gigue, décodés, puis lus. Speex et G.711 utilisent toujours cette approche pull, quel que soit ce paramètre (useJitterBuffer renvoie la valeur true pour Speex/G.711). Lorsque cette option est activée en mode de non mise en mémoire tampon, tous les codecs utilisent le tampon de gigue, tels que Speex, G.711, Nellymoser, MP3 et AAC. Cette propriété n’a aucun effet en mode de mise en mémoire tampon (bufferTime > 0) ; useJitterBuffer renvoie donc la valeur false.
Implémentation
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | propriété |
videoReliable:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si les données vidéo sont envoyées en toute fiabilité. Lorsque cette propriété est définie sur TRUE, toutes les données vidéo transmises sur ce NetStream sont totalement fiables. Si elle est définie sur FALSE, les données vidéo transmises ne sont pas totalement fiables ; elles sont retransmises pour une durée limitée, puis abandonnées. Vous pouvez utiliser la valeur FALSE pour réduire le temps d’attente au détriment de la qualité vidéo.
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Eléments de l’API associés
videoSampleAccess | propriété |
videoSampleAccess:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Pour les connexions RTMFP, indique si les abonnés homologue à homologue de ce flux de réseau sont autorisés à capturer le flux vidéo. Lorsque la valeur FALSE est définie, l’abonné tente de capturer le flux vidéo pour afficher les erreurs d’autorisation.
Remarque : cette propriété n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Implémentation
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Eléments de l’API associés
videoStreamSettings | propriété |
videoStreamSettings:VideoStreamSettings
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11/ConnectAddin, AIR 3 |
Spécifiez les propriétés de compression du flux. Pour plus d’informations, voir VideoStreamSettings
. Si aucune caméra n’est connectée à votre système, la valeur null est renvoyée.
Implémentation
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Eléments de l’API associés
NetStream | () | Constructeur |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crée un flux qui permet de lire des fichiers multimédias et d’envoyer des données sur un objet NetConnection.
Il est considéré non valide de ne pas gérer l’événement netStatus
d’un objet NetStream. Pour éviter les erreurs, enregistrez un écouteur pour l’événement netStatus
après la création de l’objet NetStream et avant l’appel de sa méthode play()
.
connection:NetConnection — Objet NetConnection.
| |
peerID:String (default = "connectToFMS ") — Ce paramètre facultatif est disponible dans Flash Player 10 et les versions ultérieures, pour une utilisation avec des connexions RTMFP. (Si la valeur de la propriété NetConnection.protocol n’est pas "rtmfp" , ce paramètre est ignoré.) Utilisez l’une des valeurs suivantes :
Dans la plupart des cas, un Si vous incluez ce paramètre dans l’instruction du constructeur et transmettez une valeur |
Valeur émise
ArgumentError — L’occurrence de NetConnection n’est pas connectée.
|
Eléments de l’API associés
DIRECT_CONNECTIONS
farID
flash.media.Video.attachCamera()
flash.net.GroupSpecifier
flash.net.GroupSpecifier.groupspecWithAuthorizations()
flash.net.GroupSpecifier.groupspecWithoutAuthorizations()
flash.net.GroupSpecifier.multicastEnabled
flash.net.NetConnection
flash.net.NetConnection.nearID
flash.net.NetConnection.protocol
flash.net.NetGroup
flash.events.NetStatusEvent.info.code="NetStream.Connect.Rejected"
flash.events.NetStatusEvent.info.code="NetStream.Connect.Success"
Exemple ( Comment utiliser cet exemple )
videoURL
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
videoURL
) sur une occurrence de Flash Media Server distante spécifiée dans la commande connect()
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect("rtmp://www.yourfmsserver.com/someappname"); var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
appendBytes | () | méthode |
public function appendBytes(bytes:ByteArray):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Transmet un ByteArray à un NetStream pour la lecture. Appelez cette méthode sur un objet NetStream en « mode de génération de données ». Pour placer un objet NetStream en mode de génération de données, appelez NetStream.play(null)
sur un NetStream créé sur un objet NetConnection connecté à null
. L’appel de la méthode appendBytes()
sur un objet NetStream qui n’est pas en mode de génération de données est une erreur et renvoie une exception.
Remarque : cette méthode n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
L’analyseur d’octets interprète un fichier FLV avec un en-tête. Après l’analyse de l’en-tête, appendBytes()
s’attend à ce que tous les futurs appels soient la continuation du même fichier réel ou virtuel. Un autre en-tête n’est pas attendu, à moins que appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
soit appelée.
Un objet NetStream possède deux mémoires tampons : la FIFO de appendBytes()
à l’objet NetStream et la mémoire tampon de lecture. La FIFO est la mémoire tampon de réassemblage des balises FLV partielles et ne contient pas plus d’une balise FLV incomplète. Les appels de la méthode NetStream.seek()
vident les deux mémoires tampons. Après un appel de la méthode seek()
, appelez appendBytesAction()
pour réinitialiser l’échelle de temps afin qu’elle commence à la date et à l’heure du prochain message joint.
Chaque appel de la méthode appendBytes()
ajoute des octets à la FIFO jusqu’à ce qu’une balise FLV soit complète. Lorsqu’une balise FLV est complète, elle se déplace vers la mémoire tampon de lecture. Un appel de la méthode appendBytes()
peut écrire plusieurs balises FLV. Les premiers octets complètent une balise FLV existante (qui se déplace vers la mémoire tampon de lecture). Les balises FLV complètes se déplacent vers la mémoire tampon de lecture. Les octets restants qui ne forment pas une balise FLV complète sont placés dans la FIFO. Les octets dans la FIFO sont terminés par un appel à appendBytes()
ou vidés par un appel à appendBytesAction()
avec l’argument RESET_SEEK
ou RESET_BEGIN
.
Remarque : il est possible que l’analyseur d’octets ne parvienne pas à décoder complètement un appel de la méthode appendBytes()
jusqu’au prochain appel de appendBytes()
.
Paramètres
bytes:ByteArray |
Eléments de l’API associés
appendBytesAction | () | méthode |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Indique une discontinuité dans l’échelle de temps, vide le contenu de la FIFO et demande à l’analyseur d’octets de prévoir un en-tête de fichier ou le début d’une balise FLV.
Remarque : cette méthode n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Les appels de NetStream.seek()
vident les mémoires tampons de l’objet NetStream. L’analyseur d’octets reste en mode de vidage jusqu’à ce que vous appeliez appendBytesAction()
et transmettiez l’argument RESET_BEGIN
ou RESET_SEEK
. Capturez l’événement "NetStream.seek.notify"
pour appeler appendBytesAction()
après une recherche. Un nouvel en-tête de fichier peut prendre en charge les listes de lecture et effectuer des recherches sans appeler NetStream.seek()
.
Vous pouvez également appeler cette méthode pour réinitialiser l’analyseur d’octets pour le rappel de onSeekPoint()
).
Paramètres
netStreamAppendBytesAction:String |
Eléments de l’API associés
attach | () | méthode |
public function attach(connection:NetConnection):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Joint un flux à un nouvel objet NetConnection. Appelez cette méthode pour associer un NetStream à un nouvel objet NetConnection après l’abandon, puis le rétablissement d’une connexion. Flash Player et AIR reprennent la diffusion en continu à partir du point où s’est arrêtée la lecture lorsque la connexion a été perdue. Vous pouvez également utiliser cette méthode pour procéder à un équilibrage de charge.
Cette méthode requiert Flash Media Server version 3.5.3 ou ultérieure.
Si vous souhaitez utiliser cette méthode pour procéder à la reconnexion du flux de données, voir la documentation de Flash Media Server 3.5.3.
Si vous souhaitez utiliser cette méthode pour l’équilibrage de charge, procédez comme suit :
- Associez un flux connecté à un objet NetConnection sur un autre serveur.
- Une fois que le flux est correctement associé à la nouvelle connexion, appelez
NetConnection.close()
sur la connexion précédente pour empêcher les fuites de données. - Appelez
NetStream.play2()
et définissez la valeur deNetStreamPlayOptions.transition
sur RESUME. Définissez le reste des propriétés NetStreamPlayOptions sur les mêmes valeurs que vous avez utilisées lors de l’appel initial de la méthodeNetStream.play()
ouNetStream.play2()
pour lancer le flux.
Paramètres
connection:NetConnection |
Eléments de l’API associés
attachAudio | () | méthode |
public function attachAudio(microphone:Microphone):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Associe un flux audio à un objet NetStream à partir d’un objet Microphone transmis en tant que source. Cette méthode n’est accessible qu’à l’éditeur du flux continu spécifié.
Utilisez cette méthode avec Flash Media Server pour envoyer des données audio en direct au serveur. Appelez cette méthode avant ou après l’appel de publish()
.
Définissez la propriété Microphone.rate
de sorte qu’elle corresponde à la valeur du périphérique de capture audio. Appelez setSilenceLevel()
pour définir le seuil de silence. Pour contrôler les propriétés audio (volume et balance) du flux audio, utilisez la propriété Microphone.soundTransform
.
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://server.domain.com/app"); var ns:NetStream = new NetStream(nc); var live_mic:Microphone = Microphone.get(); live_mic.rate = 8; live_mic.setSilenceLevel(20,200); var soundTrans:SoundTransform = new SoundTransform(); soundTrans.volume = 6; live_mic.soundTransform = soundTrans; ns.attachAudio(live_mic); ns.publish("mic_stream","live")
Pour entendre le son, appelez la méthode NetStream.play()
, puis appelez DisplayObjectContainer.addChild()
pour acheminer le son à un objet de la liste d’affichage.
Paramètres
microphone:Microphone — Source du flux audio à transmettre.
|
Eléments de l’API associés
attachCamera | () | méthode |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Démarre la capture vidéo à partir de la caméra ou arrête la capture si theCamera
est défini sur null
. Cette méthode n’est accessible qu’à l’éditeur du flux continu spécifié.
Cette méthode est conçue pour une utilisation avec Flash Media Server. Pour plus d’informations, voir la description de la classe.
Une fois la source vidéo associée, vous devez appeler NetStream.publish()
pour commencer la transmission. Les abonnés qui souhaitent afficher la vidéo doivent appeler les méthodes NetStream.play()
et Video.attachCamera()
pour afficher la vidéo sur la scène.
Vous pouvez utiliser snapshotMilliseconds
pour envoyer un instantané unique (avec valeur 0) ou une série d’instantanés, soit une séquence en accéléré (time lapse), en spécifiant un nombre positif qui ajoute à la source vidéo le nombre indiqué de millisecondes. Ce nombre étend la durée d’affichage du message vidéo. Si vous appelez attachCamera()
à plusieurs reprises en définissant une valeur positive pour snapshotMilliseconds
, la séquence d’instantanés et les millisecondes supplémentaires en alternance créent une séquence en accéléré. Vous pouvez, par exemple, capturer une image par jour et l’ajouter à la fin du fichier vidéo. Lorsqu’un abonné lit le fichier, chaque image s’affiche pendant le nombre spécifié de millisecondes, puis l’image suivante apparaît.
Le paramètre snapshotMilliseconds
n’a pas le même objectif que le paramètre fps
, que vous pouvez définir à l’aide de la méthode Camera.setMode()
. Lorsque vous spécifiez snapshotMilliseconds
, vous contrôlez le temps qui s’écoule entre les images enregistrées. Lorsque vous spécifiez fps
à l’aide de Camera.setMode()
, vous contrôlez le temps qui s’écoule à l’enregistrement et à la lecture.
Imaginons, par exemple, que vous voulez capturer 100 instantanés, à raison d’un instantané toutes les 5 minutes. Deux solutions s’offrent à vous :
- Vous pouvez émettre une commande
NetStream.attachCamera(myCamera, 500)
à 100 reprises, toutes les 5 minutes. L’enregistrement prend 500 minutes, mais le fichier résultant est lu en 50 secondes (100 images, 500 millisecondes entre elles). - Vous pouvez émettre une commande
Camera.setMode()
en réglantfps
sur 1/300 (une image toutes les 300 secondes, autrement dit, toutes les 5 minutes), puis une commandeNetStream.attachCamera(source)
, en laissant la caméra capturer des images en continu pendant 500 minutes. Il faudra 500 minutes pour lire le fichier produit ; en d’autres termes autant que pour l’enregistrer, chaque image étant affichée pendant 5 minutes.
Ces deux techniques capturent les mêmes 500 images et les deux sont utiles. Votre choix doit être déterminé principalement par le type de lecture souhaité. Dans le second cas, par exemple, vous pourriez enregistrer du son en même temps. Par ailleurs, les deux fichiers feraient environ la même taille.
Paramètres
theCamera:Camera — Source de la transmission vidéo. Les valeurs supportées sont un objet Camera (qui amorce la capture vidéo) et null . Si vous utilisez la valeur null , l’application interrompt la capture vidéo et tous les autres paramètres que vous envoyez sont ignorés.
| |
snapshotMilliseconds:int (default = -1 ) — Spécifie si le flux vidéo est continu, une image unique ou une série d’images uniques utilisées pour créer une séquence en accéléré.
|
close | () | méthode |
public function close():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Arrête la lecture des données du flux, définit la propriété time
sur 0 et met le flux à disposition. Cette méthode supprime également la copie locale d’un fichier vidéo téléchargé via HTTP. Même si l’application supprime la copie locale du fichier qu’il crée, une copie peut subsister dans le répertoire cache. Si vous devez empêcher toute mise en cache ou tout stockage local du fichier vidéo, utilisez Flash Media Server.
Avec Flash Media Server, cette méthode est invoquée implicitement lorsque vous appelez NetStream.play()
depuis un flux de publication ou NetStream.publish()
depuis un flux d’abonnement. Veuillez noter que :
-
Si
close()
est appelée depuis un flux de publication, le flux arrête la publication et l’éditeur peut alors utiliser ce flux dans un autre but. Les abonnés ne reçoivent plus aucun élément publié sur ce flux, car ce dernier a arrêté la publication. -
Si
close()
est appelée depuis un flux d’abonnement, le flux arrête la lecture pour l’abonné et ce dernier peut utiliser ce flux dans un autre but. Les autres abonnés ne sont pas affectés. -
Vous pouvez arrêter la lecture d’un flux d’abonnement sans fermer le flux ou modifier le type de flux en utilisant
flash.net.NetStream.play(false)
.
Eléments de l’API associés
dispose | () | méthode |
public function dispose():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0 |
Libère tous les ressources détenues par l'objet NetStream.
La méthode dispose()
est similaire à la méthode close
. La principale différence entre ces deux méthodes réside dans le fait que dispose()
libère la mémoire utilisée pour l'affichage de l'image vidéo en cours. Si ce bloc est actuellement affiché à l'écran, l'affichage devient vide. La méthode close()
ne permet pas d'obtenir un affichage vide, car il ne libère pas cette mémoire.
onPeerConnect | () | méthode |
public function onPeerConnect(subscriber:NetStream):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Invoqué lorsqu’un flux d’homologue éditeur correspond à un flux d’homologue abonné. Avant que l’abonné ne soit connecté à l’éditeur, appelez cette méthode pour permettre au code ActionScript de contrôler l’accès en vue d’une publication homologue à homologue. Le code suivant montre un exemple de création d’une fonction de rappel pour cette méthode :
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Si l’éditeur homologue n’implémente pas cette méthode, tous les homologues sont autorisés à lire tout contenu publié.
Paramètres
subscriber:NetStream |
Boolean |
pause | () | méthode |
public function pause():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompt la lecture d’un flux vidéo. L’appel de cette méthode n’a aucune incidence si la vidéo est déjà en pause. Pour reprendre la lecture d’une vidéo après une pause, appelez resume()
. Pour basculer entre la pause et la lecture (en commençant par mettre la vidéo en pause, puis en reprenant la lecture), appelez togglePause()
.
Depuis Flash Player 9.0.115.0, le lecteur n’efface plus la mémoire tampon lors de l’appel de NetStream.pause()
. Ce comportement est appelé pause intelligente. Avant Flash Player 9.0.115.0, le lecteur attendait le remplissage du tampon avant de reprendre la lecture, ce qui entraînait souvent des retards.
Remarque : pour assurer la compatibilité descendante, l’événement"NetStream.Buffer.Flush"
(voir la propriété NetStatusEvent.info
) est toujours déclenché, bien que le serveur ne vide pas la mémoire tampon.
En cas d’interruption unique, la propriété NetStream.bufferLength
possède une limite de 60 secondes ou de deux fois la valeur de NetStream.bufferTime
(la limite supérieure est prise en compte). Par exemple, si la propriété bufferTime
est de 20 secondes, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la propriété NetStream.bufferLength
corresponde à la valeur la plus élevée de 20*2 (c’est-à-dire 40), ou à la valeur 60 ; dans ce cas, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la valeur de bufferLength
corresponde à 60. Si la propriété bufferTime
est de 40 secondes, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la propriété bufferLength
corresponde à la valeur la plus élevée de 40*2 (c’est-à-dire 80), ou à la valeur 60 ; dans ce cas, Flash Player effectue la mise en mémoire tampon jusqu’à ce que la valeur de bufferLength
corresponde à 80.
La propriété bufferLength
possède en outre une limite absolue. Si un appel à pause()
provoque l’augmentation de bufferLength
de plus de 600 secondes, ou la valeur de plus élevée de bufferTime
* 2, Flash Player efface le contenu de la mémoire tampon et remet à zéro bufferLength
. Par exemple, si la propriété bufferTime
est de 120 secondes, Flash Player efface le contenu de la mémoire tampon si la propriété bufferLength
atteint 600 secondes ; si bufferTime
est de 360 secondes, Flash Player efface le contenu de la mémoire tampon si bufferLength
atteint 720 secondes.
Conseil : vous pouvez utiliser NetStream.pause()
dans le code pour mettre les données en mémoire tampon pendant que les spectateurs regardent une annonce publicitaire, par exemple, puis annuler l’interruption lorsque la vidéo principale démarre.
Eléments de l’API associés
play | () | méthode |
public function play(... arguments):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un fichier multimédia à partir d’un répertoire local ou d’un serveur Web ; lit un fichier multimédia ou un flux en direct depuis Flash Media Server. Distribue un objet NetStatusEvent
pour signaler les messages d’état et les messages d’erreur.
Pour plus d’informations sur les codecs et les formats de fichier pris en charge, voir les références suivantes :
- Documentation de Flash Media Server
- Exploration de la prise en charge de Flash Player pour l’audio AAC et la vidéo H.264 haute définition
- FLV/F4V open specification documents (disponible en anglais uniquement)
Flux de travail pour la lecture d’un fichier ou d’un flux en direct
- Créez un objet Video pour afficher la vidéo et appelez
addChild()
pour ajouter cet objet à la scène. Créez un objet NetConnection et appelez
NetConnection.connect()
.Pour lire un fichier à partir d’un répertoire local ou d’un serveur Web, transmettez la valeur null.
Pour lire un fichier enregistré ou un flux en direct depuis Flash Media Server, transmettez l’URI d’une application de Flash Media Server.
- Appelez la méthode
addEventListener()
de l’objet NetConnection pour écouter l’événementnetStatus
(NetStatusEvent.NET_STATUS
). - Sur l’événement
"NetConnection.Connect.Success"
, créez un objet NetStream et transmettez l’objet NetConnection au constructeur. - Appelez la méthode
attachNetStream()
de l’objet Video et transmettez l’objet NetStream. Appelez la méthode
play()
de l’objet NetStream.Pour lire un flux en direct, transmettez le nom du flux transmis à la méthode
NetStream.publish()
.Pour lire un fichier enregistré, transmettez le nom du fichier.
Remarque : nous vous recommandons de toujours ajouter l’objet Video à la scène, de lui joindre l’objet NetStream, puis d’appeler la méthode play()
de l’objet NetStream.
Activer le mode Génération de données
Appelez play(null)
pour activer le « mode de génération de données ». Dans ce mode, appelez la méthode appendBytes()
pour transmettre les données à l’objet NetStream. Utilisez le mode de génération de données pour diffuser du contenu via HTTP depuis le module original de diffusion en continu dynamique HTTP d’Adobe sur un serveur HTTP Apache. La diffusion en continu HTTP dynamique permet aux clients de rechercher rapidement un point dans un fichier. Open Source Media Framework (OSMF) prend en charge la diffusion en continu dynamique pour les flux en direct et de vidéo à la demande. Pour obtenir des exemples d’utilisation du mode de génération de données Netstream, téléchargez la source OSMF. Pour plus d’informations sur la diffusion en continu HTTP dynamique, voir la section Diffusion en continu HTTP dynamique.
Lorsque vous utilisez cette méthode sans Flash Media Server, il existe certaines contraintes de sécurité. Un fichier , placé dans le sandbox local approuvé ou local avec accès au réseau, peut charger et lire un fichier vidéo à partir du sandbox distant. Cependant, il ne peut pas accéder aux données de ce fichier distant sans une autorisation explicite, accordée sous forme de fichier de régulation d’URL. Vous pouvez en outre empêcher un fichier SWF s’exécutant dans Flash Player d’utiliser cette méthode ; pour cela, vous devez définir le paramètre allowNetworking
des balises object
et embed
dans la page HTML qui intègre le contenu SWF. Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Paramètres
... arguments — Lire un fichier local
Emplacement d’un fichier multimédia. Cet argument peut être une chaîne, une propriété Lire un fichier à partir de Flash Media Server
Vous pouvez lire les formats de fichier décrits dans le tableau suivant. La syntaxe varie selon le format de fichier.
Activer le mode Génération de données
Pour activer le mode de génération de données, transmettez la valeur Considérations spéciales pour la vidéo H. 264 dans AIR 3.0 for iOS Pour la vidéo H. 264, les API d’iOS pour la lecture vidéo acceptent uniquement une URL vers un fichier ou un flux. Vous ne pouvez pas transmettre un tampon de données vidéo H264 en vue de les décoder. En fonction de votre source vidéo, transmettez l’argument approprié à
|
Evénements
status: — Distribué lors d’une tentative de lecture d’un fichier chiffré à l’aide de la gestion des droits numériques (DRM). La valeur de la propriété code est "DRM.encryptedFLV" .
|
Valeur émise
SecurityError — Les fichiers SWF locaux et non approuvés ne peuvent pas communiquer avec Internet. Pour contourner cette restriction, reclassifiez le fichier SWF en tant que fichier local avec accès au réseau ou en tant que fichier approuvé.
| |
ArgumentError — Il est nécessaire de spécifier au moins un paramètre.
| |
Error — L’objet NetStream n’est pas valide. Cela peut être dû à un échec de NetConnection.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
play()
doit spécifier une extension de nom de fichier.
ns.play("mp4:samples/record1.f4v", 0, 100, true);
ns.play("livestream");
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyVideo.attachNetStream(MyNS); MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv"); //the clouds.flv video has metadata we're not using, so create //an error handler to ignore the message generated by the runtime //about the metadata MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); function asyncErrorHandler(event:AsyncErrorEvent):void { //ignore metadata error message }
play2 | () | méthode |
public function play2(param:NetStreamPlayOptions):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Commute en toute transparence les fichiers dont les vitesses de transmission sont différentes et permet la reprise d’un NetStream lorsque la connexion est abandonnée, puis rétablie.
Cette méthode est une version améliorée de NetStream.play()
. Comme la méthode play()
, la méthode play2()
commence la lecture d’un fichier multimédia ou met des fichiers multimédia en file d’attente pour créer une liste de lecture. Lorsqu’elle est utilisée avec Flash Media Server, elle peut également demander au serveur de basculer vers un autre fichier multimédia. La transition est transparente dans l’application client. Les fonctionnalités suivantes utilisent la commutation de flux play2()
:
Diffusion dynamique en continu
La diffusion dynamique en continu (prise en charge dans Flash Media Server 3.5 et les versions ultérieures) fournit un flux codé à des vitesses de transmission différentes. A mesure que les conditions de réseau d’un spectateur changent, ce dernier reçoit la vitesse de transmission qui fournit les meilleures conditions d’affichage. Utilisez la classe NetStreamInfo
pour gérer les conditions du réseau et changer de flux en fonction des données. Vous pouvez également changer de flux pour des clients ayant des capacités différentes. Pour plus d’informations, voir la section « Diffusion dynamique en continu » dans le « Guide du développeur d’Adobe Flash Media Server ».
Adobe a conçu une classe ActionScript personnalisée appelée DynamicStream qui étend la classe NetStream. Vous pouvez utiliser la classe DynamicStream pour implémenter la diffusion dynamique en continu dans une application au lieu d’écrire votre propre code afin de détecter les conditions du réseau. Même si vous choisissez d’écrire votre propre code de diffusion en continu dynamique, utilisez la classe DynamicStream comme exemple d’implémentation. Téléchargez la classe et la documentation de la classe depuis la page Flash Media Server tools and downloads.
Reconnexion du flux de données
La reconnexion du flux de données (prise en charge dans Flash Media Server 3.5.3 et les versions ultérieures) permet d’utiliser le média sans interruption, même lorsque la connexion est perdue. Le média utilise la mémoire tampon pour poursuivre la lecture tandis que votre logique ActionScript se reconnecte à Flash Media Server. Une fois la connexion rétablie, appelez NetStream.attach()
pour utiliser le même objet NetStream avec le nouveau NetConnection. Utilisez les API NetStream.attach()
, NetStreamPlayTransitions.resume
et NetStreamPlayTrasitions.APPEND_AND_WAIT
pour reconnecter un flux de données. Pour plus d’informations, voir la documentation de Flash Media Server 3.5.3.
Paramètres
param:NetStreamPlayOptions |
Eléments de l’API associés
preloadEmbeddedData | () | méthode |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.5, Flash Lite 4 |
Extrait les métadonnées DRM d’un fichier multimédia enregistré localement.
Utilisez tout d’abord preloadEmbeddedMetaData()
lors du téléchargement et de la mise en mémoire cache des vouchers DRM nécessaires à la lecture hors ligne. Lorsque des métadonnées DRM intégrées sont détectées dans un fichier multimédia, un objet DRMContentData est transmis à la fonction onDRMContentData
du client NetStream. Cet objet DRMContentData contient les informations nécessaires à l’obtention du voucher requis pour lire le contenu. Transmettez DRMContentDataObject à la méthode DRMManager loadVoucher()
pour télécharger le voucher.
Les étapes pour précharger un voucher DRM sont les suivantes :
-
Créez un nouvel objet NetStream pour précharger les métadonnées.
- Affectez une fonction de rappel à la propriété
onDRMContentData
duclient
NetStream. - Créez un nouvel objet NetStreamPlayOptions, puis définissez la propriété
streamName
sur la chaîne URL du fichier vidéo local. - Appelez
preloadEmbeddedMetadata()
, tout en transmettant l’objet NetStreamPlayOptions. - En réponse au rappel
onDRMContentData
, appelez la méthodeloadVoucher()
de DRMManager, tout en transmettant l’objet DRMContentData. Si la propriétéauthenticationMethod
de l’objet DRMContentData est définie sur la valeuruserNameAndPassWord
, authentifiez l’utilisateur sur le serveur de droits multimédias avant de charger le voucher. - Fermez l’objet NetStream avant le préchargement.
Remarque : si vous souhaitez utiliser le même objet NetStream pour précharger les métadonnées et lire le contenu, attendez l’appel de onPlayStatus
généré par l’opération de préchargement avant de commencer la lecture.
Les vouchers téléchargés sont stockés dans une mémoire cache locale. La lecture de contenu en ligne permet également de télécharger et de mettre en cache les vouchers. Lors de la visualisation d’un fichier dont le contenu est protégé par DRM, un voucher mis en cache est automatiquement récupéré à partir du magasin local. Utilisez DRMManager pour gérer la mémoire cache du voucher.
Remarques : le préchargement des métadonnées DRM via une connexion HTTP, HTTPS ou RTMP n’est pas pris en charge. Vous ne pouvez précharger des métadonnées qu’à partir de fichiers enregistrés sur le systèmes de fichiers.
Paramètres
param:NetStreamPlayOptions — Un objet NetStreamPlayOptions décrivant les options à utiliser lors du traitement du fichier de contenu.
|
Eléments de l’API associés
publish | () | méthode |
public function publish(name:String = null, type:String = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Envoie des données audio et vidéo, ainsi que des messages de données en diffusion continue à partir d’un client et à destination de Flash Media Server, tout en laissant la possibilité d’enregistrer ce flux pendant la transmission. Cette méthode distribue un objet NetStatusEvent avec des informations sur le flux continu. Avant d’appeler NetStream.publish()
, capturez l’événement "NetConnection.Connect.Success"
pour vérifier que l’application s’est correctement connectée à Flash Media Server.
Lors de la publication, vous pouvez enregistrer les fichiers au format FLV ou F4V. Si vous enregistrez un fichier au format F4V, utilisez un outil d’aplatissement pour modifier ou lire le fichier dans une autre application. Pour télécharger l’outil, voir www.adobe.com/go/fms_tools_fr.
Remarque : n’utilisez pas cette méthode pour lire un flux de données. Pour lire un flux de données, appelez la méthode NetStream.play()
.
Flux de travail pour la publication d’un flux de données
- Créez un objet NetConnection et appelez
NetConnection.connect()
. - Appelez
NetConnection.addEventListener()
pour écouter les événements NetStatusEvent. - Sur l’événement
"NetConnection.Connect.Success"
, créez un objet NetStream et transmettez l’objet NetConnection au constructeur. - Pour capturer du son et des images, appelez les méthodes
NetStream.attachAudio()
etNetStream.attachCamera()
. - Pour publier un flux, appelez la méthode
NetStream.play()
. Vous pouvez enregistrer les données au fur et à mesure que vous les publiez afin que les utilisateurs puissent les lire ultérieurement.
Remarque : un objet NetStream peut soit publier soit lire un flux de données, mais il ne peut pas effectuer ces deux opérations simultanément. Pour publier un flux de données et afficher la lecture à partir du serveur, créez deux objets NetStream. Vous pouvez envoyer plusieurs objets NetStream sur un seul objet NetConnection.
Lorsque Flash Media Server enregistre un flux de données, il crée un fichier. Par défaut, le serveur crée un répertoire avec le nom de l’occurrence de l’application transmis à NetConnection.connect()
et stocke le fichier dans ce répertoire. Par exemple, le code suivant établit la connexion à l’occurrence par défaut de l’application « lectureseries » et enregistre un flux de données nommé « lecture ». Le fichier « lecture.flv » est enregistré dans le répertoire applications/lectureseries/streams/_definst_ :
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://fms.example.com/lectureseries"); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
L’exemple suivant se connecte à l’occurrence de "monday" de la même application. Le fichier « lecture.flv » est enregistré dans le répertoire /applications/lectureseries/streams/monday :
var nc:NetConnection = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); nc.connect("rtmp://fms.example.com/lectureseries/monday"); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
Paramètres
name:String (default = null ) — Chaîne identifiant le flux continu. Les clients qui s’abonnent à ce flux continu transmettent ce nom lorsqu’ils appellent NetStream.play() . N’ajoutez pas une « / » après le nom du flux. Par exemple, n’utilisez pas le nom de flux "bolero/" .
Vous pouvez enregistrer les fichiers dans les formats décrits dans le tableau suivant (impossible d'utiliser
| |||||||||||||
type:String (default = null ) — Chaîne spécifiant le mode de publication du flux continu. Les valeurs valides sont "record ", "append ", "appendWithGap " et "live ". La valeur par défaut est live .
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
Pour exécuter cet exemple, vous avez besoin d’une caméra reliée à votre ordinateur. Vous devez également ajouter un composant Button et un composant Label à la bibliothèque.
L’application dispose d’un bouton qui publie un flux (l’envoie à Flash Media Server) uniquement lorsque l’application est correctement connectée au serveur. L’application lit le flux du serveur uniquement lorsque le flux a été correctement publié. L’événement NetStatusEvent
renvoie un objet info
avec une propriété code
qui spécifie ces cas. La fonction netStatusHandler
gère ces événements pour les classes NetConnection et NetStream.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.media.Camera; import flash.net.NetConnection; import flash.net.NetStream; import fl.controls.Button; import fl.controls.Label; public class NetStream_publish extends Sprite { private var connectionURL:String = "rtmp://localhost/live/"; private var videoURL:String = "liveVideo"; private var nc:NetConnection; private var ns_publish:NetStream; private var ns_playback:NetStream; private var video_publish:Video; private var video_playback:Video; private var cam:Camera; private var b:Button; private var l:Label; public function NetStream_publish() { setUpUI(); nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Add bandwidth detection handlers on the NetConnection Client to // prevent Reference Errors at runtime when using the "live" and "vod" applications. var clientObj:Object = new Object(); clientObj.onBWDone = onBWDone; clientObj.onBWCheck = onBWCheck; nc.client = clientObj; // Connect to the "live" application on Flash Media Server. nc.connect(connectionURL); } private function netStatusHandler(event:NetStatusEvent):void { trace(event.info.code + " | " + event.info.description); switch (event.info.code) { case "NetConnection.Connect.Success": // Enable the "Publish" button after the client connects to the server. b.enabled = true; break; case "NetStream.Publish.Start": playbackVideo(); break; } } private function publishVideo(event:MouseEvent):void{ // Disable the button so that you can only publish once. b.enabled = false; // Create a NetStream to send video to FMS. ns_publish = new NetStream(nc); ns_publish.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Publish (send) the video to FMS. cam = Camera.getCamera(); ns_publish.attachCamera(cam); ns_publish.publish(videoURL); } private function playbackVideo():void { // Create the Video object to show the video on the stage video_playback = new Video(cam.width, cam.height); video_playback.x = cam.width + 20; video_playback.y = 10; addChild(video_playback); // Create a NetStream to receive the video from FMS. ns_playback = new NetStream(nc); ns_playback.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Display the video that was published to FMS. video_playback.attachNetStream(ns_playback); ns_playback.play(videoURL); } private function setUpUI():void { b = new Button(); b.addEventListener(MouseEvent.CLICK, publishVideo); b.width = 150; b.label = "Publish video to server"; b.move(10, 150); b.enabled = false; l = new Label(); l.width = 150; l.text = "Playing back from server" l.move(190, 150); addChild(b); addChild(l); } // Handlers called by the Flash Media Server "live" and "vod" applications. public function onBWDone(... rest):Boolean { return true; } public function onBWCheck(... rest):Number { return 0; } } }
receiveAudio | () | méthode |
public function receiveAudio(flag:Boolean):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indique si les données audio entrantes sont lues dans le flux continu. Cette méthode n’est accessible qu’aux clients abonnés au flux spécifié. L’éditeur du flux n’y a pas accès. Appelez cette méthode avant ou après l’appel de la méthode NetStream.play()
. Par exemple, associez cette méthode à un bouton pour permettre aux utilisateurs de désactiver et de réactiver le son. Utilisez cette méthode uniquement sur les flux de données en monodiffusion lus à partir de Flash Media Server. Cette méthode ne fonctionne pas sur les flux de données en multidiffusion RTMFP ou lors de l’utilisation de la méthode NetStream.appendBytes()
.
Paramètres
flag:Boolean — Spécifie si les données audio entrantes sont lues dans le flux (true ) ou non (false ). La valeur par défaut est true . Si le flux continu spécifié contient uniquement des données audio, NetStream.time cesse d’augmenter lorsque vous transmettez false .
|
receiveVideo | () | méthode |
public function receiveVideo(flag:Boolean):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indique si les données vidéo entrantes sont lues sur le flux continu. Cette méthode n’est accessible qu’aux clients abonnés au flux spécifié. L’éditeur du flux n’y a pas accès. Appelez cette méthode avant ou après l’appel de la méthode NetStream.play()
. Par exemple, associez cette méthode à un bouton pour permettre aux utilisateurs d’afficher et de masquer la vidéo. Utilisez cette méthode uniquement sur les flux de données en monodiffusion lus à partir de Flash Media Server. Cette méthode ne fonctionne pas sur les flux de données en multidiffusion RTMFP ou lors de l’utilisation de la méthode NetStream.appendBytes()
.
Paramètres
flag:Boolean — Indique si les données vidéo entrantes de ce flux sont lues (true ) ou non (false ). La valeur par défaut est true . Si le flux continu spécifié contient uniquement des données vidéo, NetStream.time cesse d’augmenter lorsque vous transmettez false .
|
receiveVideoFPS | () | méthode |
public function receiveVideoFPS(FPS:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indique la cadence des données vidéo entrantes. Cette méthode n’est accessible qu’aux clients abonnés au flux spécifié. L’éditeur du flux n’y a pas accès. Appelez cette méthode avant ou après l’appel de la méthode NetStream.play()
. Par exemple, appelez cette méthode pour permettre aux utilisateurs de la cadence vidéo. Pour déterminer la cadence actuelle, utilisez NetStream.currentFPS
. Pour interrompre la réception des données vidéo, transmettez 0
.
Lorsque vous transmettez une valeur au paramètre FPS en vue de limiter la cadence de la vidéo, Flash Media Server tente de réduire la cadence tout en préservant l’intégrité de la vidéo. Entre deux images-clés, le serveur envoie le nombre minimum d’images nécessaires pour répondre à la cadence spécifiée. Notez que les images intermédiaires doivent être envoyées conjointement, auquel cas la vidéo est endommagée. Par conséquent, le nombre d’images souhaité est envoyé immédiatement et conjointement après une image-clé. Etant donné que les images ne sont pas distribuées uniformément, le mouvement entre images uniques est homogène, mais des interruptions apparaissent entre les séquences d’images.
Utilisez cette méthode uniquement sur les flux de données en monodiffusion lus à partir de Flash Media Server. Cette méthode ne fonctionne pas sur les flux de données en multidiffusion RTMFP ou lors de l’utilisation de la méthode NetStream.appendBytes()
.
Paramètres
FPS:Number — Indique le nombre d’images par seconde lors de la lecture des données vidéo entrantes.
|
resetDRMVouchers | () | méthode |
public static function resetDRMVouchers():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
Dans les applications AIR, cette opération supprime toutes les données du voucher de gestion des droits numériques (DRM) mises en cache localement. Pour les applications sur navigateur, cette opération n’est disponible que pendant les erreurs 3322, et se comporte comme le panneau des paramètres de lecture de contenu protégé.
L’application doit à nouveau télécharger les vouchers requis depuis le serveur de droits multimédias afin que l’utilisateur puisse accéder au contenu protégé. Appeler cette fonction équivaut à appeler la fonction resetDRMVouchers()
de l’objet DRMManager.
Valeur émise
IOError — Les données du voucher ne peuvent pas être supprimées.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
NetStream.resetDRMVouchers();
resume | () | méthode |
public function resume():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Reprend la lecture d’un flux vidéo en pause. Si la vidéo est en cours de lecture, l’appel de cette méthode n’a aucun effet.
Eléments de l’API associés
seek | () | méthode |
public function seek(offset:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Recherche l’image-clé (également appelée Image-I dans l’industrie vidéo) la plus proche de l’emplacement spécifié. L’image-clé est placée à un décalage, en secondes, depuis le début du flux.
Les flux vidéo sont généralement encodés avec deux types d’image, les images-clés (ou images I) et les images P. Une image-clé contient l’ensemble de l’image, alors qu’une image P est une image intérimaire qui fournit des informations vidéo supplémentaires entre les images-clé. Un flux vidéo présente généralement une image-clé toutes les 10 à 50 images.
Flash Media Server dispose de plusieurs types de comportements de recherche : la recherche améliorée et la recherche dynamique.
Recherche améliorée
Par défaut, la recherche améliorée est activée. Pour désactiver la recherche améliorée, ouvrez Flash Media Server, puis définissez l’élément EnhancedSeek
dans le fichier de configuration application.xml
sur false
.
Si la recherche améliorée est activée, le serveur génère une nouvelle image-clé au niveau du décalage
en fonction de l’image-clé précédente et de toute image P intermédiaire. Cela peut toutefois créer une charge de traitement élevée sur le serveur et une distorsion peut survenir dans l’image-clé générée. Si le codec vidéo est On2, l’image-clé située avant le point de recherche, ainsi que toute image P située entre l’image-clé et le point de recherche sont envoyées au client.
Si la recherche améliorée est désactivée, le serveur commence la diffusion en continu à partir de l’image-clé la plus proche. Par exemple, supposons qu’une vidéo présente des images-clés à 0 et 10 secondes. Une recherche de 4 secondes entraîne un démarrage de la lecture à 4 secondes à l’aide de l’image-clé à 0 seconde. La vidéo demeure figée jusqu’à ce qu’elle atteigne la prochaine image-clé placée à 10 secondes. Pour améliorer les recherches, vous devez réduire l’intervalle des images-clés. En mode de recherche normal, vous ne pouvez pas démarrer la vidéo à un point placé entre les images-clés.
Recherche dynamique
Pour activer la recherche dynamique, définissez NetStream.inBufferSeek
sur true
.
La recherche dynamique permet à Flash Player d’effectuer des recherches dans une mémoire tampon d’arrière-plan et dans une mémoire tampon directe. Si la fonction de recherche dynamique est désactivée, chaque fois que la méthode seek()
est appelée, Flash Player efface le contenu de la mémoire tampon et sollicite des données au serveur. Pour plus d’informations, voir NetStream.inBufferSeek
.
Recherche en mode de génération de données
Lorsque vous appelez seek()
sur un objet NetStream en mode de génération de données, tous les octets transmis à appendBytes()
sont ignorés (non placés en mémoire tampon, accumulés dans la FIFO de messages partiels ou analysés pour les points de recherche) jusqu’à ce que vous appeliez appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
ou appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
pour réinitialiser le programme d’analyse. Pour plus d’informations sur le mode de génération de données, voir NetStream.play()
.
Paramètres
offset:Number — Valeur de temps approximative, en secondes, à atteindre dans un fichier vidéo. Avec Flash Media Server, si la propriété <EnhancedSeek> est définie sur true dans le fichier de configuration Application.xml (configuration par défaut), le serveur génère une image-clé au décalage .
|
Eléments de l’API associés
send | () | méthode |
public function send(handlerName:String, ... arguments):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Envoie un message sur le flux publié à tous les clients abonnés. Cette méthode n’est accessible qu’à l’éditeur du flux continu spécifié. Cette méthode est disponible uniquement avec Flash Media Server. Pour traiter et répondre à ce message, créer un gestionnaire sur l’objet NetStream
, par exemple ns.HandlerName
.
Flash Player ou AIR ne sérialise pas les méthodes ni leurs données, les variables de prototype d’objet ou les variables non énumérables. Pour les objets d’affichage, Flash Player AIR sérialise le chemin, mais pas les données.
Vous pouvez appeler la méthode send()
pour ajouter des images-clés de données à un flux en direct publié sur Flash Media Server. Une image-clé de données est un message ajouté à un flux en direct par un éditeur. Les images-clés de données sont généralement utilisées pour ajouter des métadonnées à un flux en direct avant la capture des données pour le flux à partir de la caméra et du microphone. Un éditeur peut à tout moment ajouter une image-clé de données pendant la publication du flux. L’image-clé de données est enregistrée dans la mémoire du serveur tant que l’éditeur y est connecté.
Les clients abonnés au flux en direct avant l’ajout d’une image-clé de données reçoivent cette image-clé dès son ajout. Les clients qui s’abonnent au flux en direct après l’ajout de l’image-clé reçoivent cette image-clé lorsqu’ils s’abonnent.
Pour ajouter une image-clé de métadonnées dans un flux en direct envoyé à Flash Media Server, utilisez @setDataFrame
comme nom de gestionnaire, suivi de deux arguments supplémentaires, tels que :
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
L’argument @setDataFrame
fait référence à un gestionnaire spécial intégré au Flash Media Server. L’argument onMetaData
est le nom d’une fonction de rappel de votre application client qui écoute l’événement onMetaData
et récupère les métadonnées. Le troisième élément, metaData
, est une occurrence de Object
ou d’Array
dont les propriétés définissent les valeurs des métadonnées.
Utilisez @clearDataFrame
pour effacer une image-clé de métadonnées déjà définie dans le flux :
ns.send("@clearDataFrame", "onMetaData");
Paramètres
handlerName:String — Message à envoyer ; également le nom du gestionnaire ActionScript qui reçoit le message. Le nom du gestionnaire ne peut avoir qu’un seul niveau (autrement dit, il ne peut pas être au format parent/enfant) et est relatif à l’objet flux. N’utilisez pas un terme réservé comme nom du gestionnaire. Par exemple, l’attribution du nom "close " au gestionnaire entraîne l’échec de la méthode. Avec Flash Media Server, utilisez @setDataFrame pour ajouter une image-clé de métadonnées à un flux en direct ou @clearDataFrame pour supprimer une image-clé.
| |
... arguments — Les arguments facultatifs peuvent être de n’importe quel type. Ils sont sérialisés et envoyés via la connexion, et le gestionnaire de destination les reçoit dans le même ordre. Si un paramètre représente un objet circulaire (une liste liée qui est circulaire, par exemple), l’utilitaire de sérialisation gère correctement les références. Avec Flash Media Server, si @setDataFrame est le premier argument, utilisez onMetaData comme second argument ; pour le troisième argument, transmettez une occurrence de Object ou Array possédant les métadonnées définies comme propriétés. Voir le Flash Media Server Developer Guide pour obtenir une liste des noms de propriété suggérés. Avec @clearDataFrame comme premier argument, utilisez onMetaData comme second argument et pas de troisième argument.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
NetStream
. L’un est utilisé pour publier un flux en direct sur le serveur, l’autre s’abonne au flux.
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.media.Video; import flash.utils.setTimeout; public class TestExample extends Sprite { var nc:NetConnection = new NetConnection(); var ns1:NetStream; var ns2:NetStream; var vid:Video = new Video(300,300); var obj:Object = new Object(); public function TestExample() { nc.objectEncoding = 0; nc.addEventListener("netStatus", onNCStatus); nc.connect("rtmp://localhost/FlashVideoApp"); addChild(vid); } function onNCStatus(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": trace("You've connected successfully"); ns1 = new NetStream(nc); ns2 = new NetStream(nc); ns1.client = new CustomClient(); ns1.publish("dummy", "live"); ns2.client = new CustomClient(); vid.attachNetStream(ns2); ns2.play("dummy"); setTimeout(sendHello, 3000); break; case "NetStream.Publish.BadName": trace("Please check the name of the publishing stream" ); break; } } function sendHello():void { ns1.send("myFunction", "hello"); } } } class CustomClient { public function myFunction(event:String):void { trace(event); } }
private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Publish.Start": var metaData:Object = new Object(); metaData.title = "myStream"; metaData.width = 400; metaData.height = 200; ns.send("@setDataFrame", "onMetaData", metaData); ns.attachCamera( Camera.getCamera() ); ns.attachAudio( Microphone.getMicrophone() ); } }
onMetaData
. Le gestionnaire d’événement onMetaData
n’est pas enregistré avec addEventListener()
, mais correspond à une fonction de rappel nommée onMetaData
, par exemple :
public function onMetaData(info:Object):void { trace("width: " + info.width); trace("height: " + info.height); }
// Create a NetStream for playing var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); // Play the stream record1 my_ns.play("record1", 0, -1, true); // Switch to the stream live1 and play for 5 seconds. // Since reset is false, live1 will start to play after record1 is done. my_ns.play("live1", -1 , 5, false);
//To play at normal speed var my_ns:NetStream = new NetStream(my_nc); my_ns.play("log", 0, -1); //To get the data messages all at once my_ns.play("log", 0, -1, 3);
setDRMAuthenticationCredentials | () | méthode |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Lite 4 |
Définit les informations d’authentification de la gestion des droits numériques nécessaires à l’affichage du contenu chiffré sous-jacent.
La méthode setDRMAuthenticationCredentials()
doit fournir des informations d’identification qui correspondent à celles reconnues et approuvées par le fournisseur de contenu ou le serveur proxy. Ces informations d’identification sont les mêmes que celles dont l’utilisateur a besoin pour obtenir l’autorisation d’afficher le contenu.
Paramètres
userName:String — Nom d’utilisateur valide.
| |
password:String — Mot de passe correspond au nom d’utilisateur fournit.
| |
type:String — Chaîne indiquant le type d’informations d’authentification fournit. Les valeurs valides sont "drm" et "proxy" . La valeur par défaut est "drm" .
|
Eléments de l’API associés
step | () | méthode |
public function step(frames:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Recule ou avance du nombre d’images spécifié à partir de l’image actuellement affichée. Spécifiez un nombre positif pour vous déplacer vers l’avant et un nombre négatif pour vous déplacer en sens inverse. Appelez cette méthode pour créer une fonctionnalité précise d’avance ou de retour rapide.
Remarque : cette méthode n’est pas prise en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Cette méthode n’est disponible que lorsque les données sont diffusées en continu à partir de Flash Media Server 3.5.3 ou version ultérieure et lorsque NetStream.inBufferSeek
est définie sur true
. Par ailleurs, l’image cible doit se trouver dans la mémoire tampon. Par exemple, si l’image actuellement affichée est l’image numéro 120 et que vous spécifiez une valeur de 1000, cette méthode échoue si l’image numéro 1120 ne se trouve pas dans la mémoire tampon.
Cette méthode est conçue pour être utilisée avec la méthode pause()
ou togglePause()
. Si vous avancez ou reculez de 10 images pendant la lecture sans effectuer de pause, il est possible que vous ne détectiez pas cette opération ou qu’elle ressemble à une erreur. Par ailleurs, si vous appelez pause()
ou togglePause
le son est coupé.
Si l’appel de la méthode NetStream.étape()
aboutit, un événement NetStatusEvent est envoyé avec "NetStream.Step.Notify" en tant que valeur de la propriété code
de l’objet info.
Paramètres
frames:int |
Eléments de l’API associés
togglePause | () | méthode |
public function togglePause():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompt ou reprend la lecture d’un flux continu. Lorsque vous appelez cette méthode pour la première fois, la lecture est interrompue ; au prochain appel, la lecture reprend. Vous pouvez par exemple utiliser cette méthode pour permettre aux utilisateurs d’interrompre ou de reprendre la lecture par pression d’un seul bouton.
Eléments de l’API associés
asyncError | Evénement |
flash.events.AsyncErrorEvent
propriété AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué lorsqu’une erreur est renvoyée de manière asynchrone ; autrement dit, lorsqu’elle provient du code asynchrone natif. Cet événement est distribué lorsqu’un serveur appelle une méthode non définie sur le client.
La constanteAsyncErrorEvent.ASYNC_ERROR
définit la valeur de la propriété type
d’un objet événement asyncError
.
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. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | L’objet distribuant l’événement. |
error | Erreur qui a déclenché l’événement. |
Eléments de l’API associés
drmAuthenticate | Evénement |
flash.events.DRMAuthenticateEvent
propriété DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Lite 4 |
Distribué lorsqu’un objet NetStream tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) nécessitant l’obtention d’informations d’identification pour authentifier l’utilisateur avant la lecture.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Utilisez la méthode setDRMAuthenticationCredentials()
de l’objet NetStream pour authentifier l’utilisateur. En cas d’échec de l’authentification utilisateur, l’application tente de nouveau l’authentification et distribue un nouvel événement DRMAuthenticateEvent pour l’objet NetStream.
DRMAuthenticateEvent.DRM_AUTHENTICATE
définit la valeur de la propriété type
d’un objet événement DRMAuthenticateEvent.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
authenticationType | Indique si les informations d’identification fournies servent à l’authentification par rapport à un serveur FMRMS (Flash Media Rights Management Server : serveur de gestion des droits de Flash Media) ou un serveur proxy. |
bubbles | false |
cancelable | false il n’existe aucun comportement par défaut à annuler. |
en-tête | L’en-tête du fichier de contenu chiffré fourni par le serveur. |
netStream | L’objet NetStream qui a initié cet événement. |
passwordPrompt | Une invite à entrer les informations de mot de passe, fournies par le serveur. |
target | L’objet NetStream. |
urlPrompt | Une invite pour une URL à afficher, fournie par le serveur. |
usernamePrompt | Une invite à entrer les informations de nom d’utilisateur, fournies par le serveur. |
Eléments de l’API associés
drmError | Evénement |
flash.events.DRMErrorEvent
propriété DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Distribué lorsqu’un objet NetStream qui tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) rencontre une erreur de type DRM. Par exemple, un objet DRMErrorEvent est distribué lorsque l’autorisation utilisateur échoue. Il est en effet possible que l’utilisateur n’ait pas acquis les droits nécessaires à l’affichage du contenu ou que le fournisseur de contenu ne prenne pas en charge l’application d’affichage.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
La constanteDRMErrorEvent.DRM_ERROR
définit la valeur de la propriété type
d’un objet événement drmError
.
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. |
errorID | Un code d’erreur numérique correspondant au problème. |
subErrorID | Un code d’erreur qui indique des informations détaillées supplémentaires sur le problème sous-jacent. |
target | L’objet NetStream. |
Eléments de l’API associés
drmStatus | Evénement |
flash.events.DRMStatusEvent
propriété DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Distribué lorsque la lecture du contenu chiffré à l’aide de la gestion des droits numériques (DRM) commence, c’est-à-dire lorsque l’utilisateur est authentifié et autorisé à lire le contenu.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
L’objet DRMStatusEvent contient des informations concernant le voucher : disponibilité du voucher hors connexion, date d’expiration du voucher, accessibilité du contenu aux utilisateurs, etc.
La constanteDRMStatusEvent.DRM_STATUS
définit la valeur de la propriété type
d’un objet d’événement drmStatus
.
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. |
detail | Une chaîne expliquant le contexte de l’événement status. |
isAnonymous | Indique si le contenu protégé avec le chiffrement DRM est disponible sans que l’utilisateur doive fournir des informations d’identification d’authentification. |
isAvailableOffline | Indique si le contenu protégé avec le chiffrement DRM est disponible hors ligne. |
offlineLeasePeriod | Le nombre de jours qu’il reste pour afficher le contenu hors ligne. |
policies | Un objet custom de l’événement DRM status. |
target | L’objet NetStream. |
voucherEndDate | La date absolue d’expiration du bon à laquelle le contenu ne peut plus être affiché par les utilisateurs |
contentData | DRMContentData pour le contenu |
voucher | L’objet DRMVoucher pour le contenu. |
isLocal | Indique si le contenu est enregistré sur le système de fichiers local |
Eléments de l’API associés
ioError | Evénement |
flash.events.IOErrorEvent
propriété IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération réseau.
Définit la valeur de la propriététype
d’un objet d’événement ioError
.
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. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
errorID | Un numéro de référence associé à l’erreur spécifique (AIR uniquement). |
target | Objet réseau sur lequel l’erreur d’entrée/sortie s’est produite. |
text | Texte à afficher en tant que message d’erreur. |
mediaTypeData | Evénement |
flash.events.NetDataEvent
propriété NetDataEvent.type =
flash.events.NetDataEvent
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.3, AIR 2.7 |
Distribué lors de la lecture de contenu vidéo et du traitement de certains types de messages.
Un NetDataEvent est distribué pour les messages suivants :
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (pour le code NetStream.Play.Complete)
- onTextData
- onXMPData
Remarque : cet événement n’est pas distribué par le contenu qui s’exécute dans Flash Player dans le navigateur sur Android ou le système d’exploitation de la tablette Blackberry ou par le contenu s’exécutant dans AIR sur iOS.
netStatus | Evénement |
flash.events.NetStatusEvent
propriété NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué lorsqu’un objet NetStream publie son état ou signale une erreur. L’événement netStatus
renferme une propriété info
composée d’un objet d’informations contenant des informations spécifiques sur l’événement, telles que la réussite ou l’échec d’une tentative de connexion.
type
d’un objet d’événement netStatus
.
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. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
info | Objet associé à des propriétés décrivant son état ou indiquant une erreur. |
target | Objet NetConnection ou NetStream publiant son état. |
Eléments de l’API associés
onCuePoint | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Etablit un écouteur pour qu’il réponde lorsqu’un point de repère intégré est atteint pendant la lecture d’un fichier vidéo. Vous pouvez utiliser l’écouteur pour déclencher des actions dans votre code lorsque le fichier vidéo atteint un point de repère spécifique. Ceci vous permet de synchroniser d’autres actions dans votre application avec les événements de lecture vidéo. Pour plus d’informations sur les formats des fichiers vidéo pris en charge par Flash Media Server, voir www.adobe.com/go/learn_fms_fileformats_en.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
onCuePoint
est en fait une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher pour écouter ou traiter onCuePoint
comme un événement. Définissez une fonction de rappel et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Créez une sous-classe de NetStream et définissez votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
L’écouteur d’événement associé est déclenché après un appel de la méthode NetStream.play()
, mais avant que la tête de lecture vidéo n’ait avancé.
Vous pouvez incorporer les types de points de repère suivants dans un fichier vidéo :
- Un point de repère de navigation spécifie, au sein du fichier vidéo, une image-clé à laquelle correspond la propriété
time
du point de repère. Les points de repère de navigation sont souvent utilisés comme signets ou points d’entrée pour permettre aux utilisateurs de parcourir le fichier vidéo. - Un point de repère d’événement spécifie une durée. La durée peut ou non correspondre à une image-clé spécifique. Un point de repère d’événement représente généralement dans le fichier vidéo un minutage auquel il se produit un événement qui pourrait être utilisé pour déclencher d’autres événements d’application.
L’objet d’événement onCuePoint
possède les propriétés suivantes :
Propriété | Description |
---|---|
name | Nom attribué au point de repère lors de son imbrication dans le fichier vidéo. |
paramètres | Tableau associatif de chaînes constituées de paires nom/valeur spécifiées pour ce point de repère. Il est possible d’utiliser toute chaîne valide pour le paramètre de nom ou de valeur. |
time | Durée (en secondes) jusqu’au point de repère qui survient dans le fichier vidéo au cours de la lecture. |
type | Type de point de repère atteint, navigation ou événement. |
Vous pouvez définir des points de repère dans un fichier vidéo lorsque vous encodez initialement celui-ci ou lorsque vous importez un clip vidéo dans l’outil de création de Flash à l’aide de l’assistant d’importation vidéo.
L’événement onMetaData
extrait également des informations sur les points de repère d’un fichier vidéo. Toutefois, l’événement onMetaData
extrait des informations sur tous les points de repère avant le début de la lecture du fichier. L’événement onCuePoint
extrait des informations sur un seul point de repère, au minutage spécifié pour ce point au cours de la lecture.
En règle générale, pour que votre code réagisse à un certain point de repère au moment où il se produit, utilisez l’événement onCuePoint
pour déclencher une action dans votre code.
Vous pouvez utiliser la liste de points de repère fournie à l’événement onMetaData
pour permettre à l’utilisateur de commencer à lire la vidéo à des points prédéfinis du flux vidéo. Transmettez la valeur de la propriété time
du point de repère à la méthode NetStream.seek()
pour lire la vidéo à partir de ce dernier.
Exemple ( Comment utiliser cet exemple )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Eléments de l’API associés
onDRMContentData | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.5, Flash Lite 4 |
Etablit un écouteur pour répondre lorsque AIR extrait les métadonnées de contenu DRM intégrées dans un fichier multimédia.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Un objet DRMContentData contient les informations nécessaires à l’obtention du voucher requis pour lire un fichier multimédia protégé par DRM. Utilisez la classe DRMManager pour télécharger le voucher avec ces informations.
onDRMContentData
est une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle correspond à un événement data lors du préchargement des données incorporées depuis un fichier multimédia local. Pour plus d’informations, voir la description de la classe NetStream. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher pour écouter ou traiter onDRMContentData
comme un événement. Vous devez en revanche définir une fonction de rappel unique et l’associer directement à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Vous pouvez cependant créer une sous-classe de NetStream et définir votre gestionnaire d’événements dans la sous-classe ou faire de celle-ci une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une de ses occurrences.
Eléments de l’API associés
onImageData | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit des données d’images sous forme de tableau d’octets intégré dans un fichier multimédia en cours de lecture. Les données d’image peuvent produire du contenu JPEG, PNG ou GIF. Utilisez la méthode flash.display.Loader.loadBytes()
pour charger le tableau d’octets dans un objet d’affichage.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
onImageData
est en fait une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher pour écouter ou traiter onImageData
comme un événement. Définissez une fonction de rappel unique et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Créez une sous-classe de NetStream et définissez votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
L’écouteur d’événement associé est déclenché après un appel de la méthode NetStream.play()
, mais avant que la tête de lecture vidéo n’ait avancé.
L’objet d’événement onImageData contient les données d’images sous la forme d’un tableau d’octets envoyé par l’intermédiaire d’un canal de données AMF0.
Exemple ( Comment utiliser cet exemple )
Netstream.client
pour gérer les fonctions de rappel pour onTextData
et onImageData
. La fonction onImageDataHandler()
utilise l’objet d’événement onImageData imageData
pour stocker le tableau d’octets. Et la fonction onTextDataHandler()
utilise l’objet d’événement onTextData textData
pour stocker les morceaux de données texte (chaque morceau de données est une propriété de l’objet textData
).
Vous devez remplacer l’emplacement « yourURL »
de votre code par un emplacement réel conduisant vers un fichier multimédia avec métadonnées d’image ou de texte.
Vous pouvez également gérer les données de texte et d’images à l’aide d’une classe personnalisée. Voir l’article Gestion des métadonnées et des points de repères dans Flash Video pour plus d’informations et d’exemples.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Eléments de l’API associés
onMetaData | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit une description intégrée à la vidéo en cours de lecture. Pour plus d’informations sur les formats des fichiers vidéo pris en charge par Flash Media Server, voir www.adobe.com/go/learn_fms_fileformats_en.
onMetaData
est en fait une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream et de la propriété NetStream.client
. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher, pour écouter ou traiter onMetaData
comme un événement. Définissez une fonction de rappel unique et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Vous pouvez créer une sous-classe de NetStream et définir votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
L’utilitaire Flash Video Exporter (version 1.1 ou supérieure) intègre la durée de la vidéo, sa date de création, les débits et d’autres informations dans le fichier vidéo. Différents encodeurs vidéo intègrent différents jeux de métadonnées.
L’écouteur d’événement associé est déclenché après un appel de la méthode NetStream.play()
, mais avant que la tête de lecture vidéo n’ait avancé.
Dans la plupart des cas, la valeur de durée intégrée dans les métadonnées du flux se rapproche de la durée réelle, mais n’est pas exacte. En d’autres termes, elle ne correspond pas toujours à la valeur de la propriété NetStream.time
lorsque la tête de lecture est à la fin du flux vidéo.
L’objet d’événement transmis au gestionnaire d’événement onMetaData contient une propriété pour chaque élément de données.
Exemple ( Comment utiliser cet exemple )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Eléments de l’API associés
onPlayStatus | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Etablit un écouteur pour qu’il réponde lorsque un objet NetStream a terminé la lecture d’un flux. L’objet d’événement associé fournit des informations autres que ce renvoie l’événement netStatus
. Vous pouvez utiliser cette propriété pour déclencher des actions dans votre code lorsqu’un objet NetStream est passé d’un flux continu à un autre dans une liste de lecture (ce qu’indique l’objet d’informations NetStream.Play.Switch
) ou lorsque l’objet NetStream a terminé la lecture du flux continu (ce qu’indique l’objet d’informations NetStream.Play.Complete
).
onPlayStaus
est en fait une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher pour écouter ou traiter onPlayStatus
comme un événement. Définissez une fonction de rappel et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Créez une sous-classe de NetStream et définissez votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
Cet événement peut renvoyer un objet d’informations doté des propriétés suivantes :
Propriété du code | Propriété de niveau | Signification |
---|---|---|
NetStream.Play.Switch | "status" | L’abonné passe d’un flux continu à un autre dans une liste de lecture. |
NetStream.Play.Complete | "status" | La lecture est terminée. |
NetStream.Play.TransitionComplete | "status" | L’abonné bascule vers un nouveau flux en résultat du basculement du débit du flux. |
Eléments de l’API associés
onSeekPoint | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Appelée de façon synchrone par appendBytes()
lorsque l’analyseur d’octets détecte un point pouvant faire l’objet d’une recherche (par exemple, une image-clé vidéo). Utilisez cet événement pour construire un tableau de points de recherche. La propriété byteCount
correspond à la propriété byteCount
au premier octet du message analysable pour ce point de recherche, et est remise à zéro comme décrit ci-dessus. Pour effectuer une recherche, lors de l’événement NetStream.Seek.Notify
, recherchez les octets qui commencent à partir d’un point pouvant faire l’objet d’une recherche et appelez appendBytes(bytes)
. Si l’argument bytes
est un ByteArray
composé d’octets qui commencent à un point pouvant faire l’objet d’une recherche, la vidéo est lue à partir de ce point de recherche.
Remarque : les appels de appendBytes()
à partir de ce rappel sont ignorés.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
La propriété onSeekPoint
est une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond aux données transmises à la méthode appendBytes()
. Pour plus d’informations, voir la description de la classe NetStream et de la propriété NetStream.client
. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni aucune autre méthode EventDispatcher, pour écouter ou traiter onSeekPoint
comme un événement. Pour utiliser onSeekPoint
, définissez une fonction de rappel et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Vous pouvez cependant créer une sous-classe de NetStream et définir votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
Eléments de l’API associés
onTextData | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Etablit un écouteur pour qu’il réponde lorsque Flash Player reçoit des données texte intégrées dans un fichier multimédia en cours de lecture. Les données texte sont au format UTF-8 et peuvent contenir des informations sur le formatage basées sur la spécification Timed Text 3GP.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
onTextData
est en fait une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher pour écouter ou traiter onTextData
comme un événement. Définissez une fonction de rappel et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Créez une sous-classe de NetStream et définissez votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
L’écouteur d’événement associé est déclenché après un appel de la méthode NetStream.play()
, mais avant que la tête de lecture vidéo n’ait avancé.
L’objet d’événement onTextData contient une propriété pour chaque partie de données texte.
Exemple ( Comment utiliser cet exemple )
Netstream.client
pour gérer les fonctions de rappel pour onTextData
et onImageData
. La fonction onImageDataHandler()
utilise l’objet d’événement onImageData imageData
pour stocker le tableau d’octets. Et la fonction onTextDataHandler()
utilise l’objet d’événement onTextData textData
pour stocker les morceaux de données texte (chaque morceau de données est une propriété de l’objet textData
).
Vous devez remplacer l’emplacement « yourURL »
de votre code par un emplacement réel conduisant vers un fichier multimédia avec métadonnées d’image ou de texte.
Vous pouvez également gérer les données de texte et d’images à l’aide d’une classe personnalisée. Voir l’article Gestion des métadonnées et des points de repères dans Flash Video pour plus d’informations et d’exemples.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Eléments de l’API associés
onXMPData | Evénement |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Définit un écouteur pour qu’il réponde lorsque Flash Player reçoit des informations spécifiques à XMP (Extensible Metadata Platform) d’Adobe, intégrées à la vidéo lue. Pour plus d’informations sur les formats des fichiers vidéo pris en charge par Flash Media Server, voir www.adobe.com/go/learn_fms_fileformats_en.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
onXMPData
est en réalité une propriété de l’objet NetStream.client
. Cette propriété est répertoriée dans la section Events, car elle répond à un événement data, soit lors de la diffusion de données multimédias avec Flash Media Server soit lors de la lecture d’un fichier FLV. Pour plus d’informations, voir la description de la classe NetStream et de la propriété NetStream.client
. Vous ne pouvez pas utiliser la méthode addEventListener()
, ni toute autre méthode EventDispatcher, pour écouter ou traiter onMetaData
comme un événement. Définissez une fonction de rappel et associez-la à l’un des objets suivants :
- Objet auquel fait référence la propriété
client
d’une occurrence de NetStream. - Occurrence d’une sous-classe de NetStream. NetStream est une classe scellée, ce qui signifie qu’il est impossible d’ajouter des propriétés ou des méthodes à un objet NetStream à l’exécution. Vous pouvez cependant créer une sous-classe de NetStream et définir votre gestionnaire d’événement dans la sous-classe. Vous pouvez également faire de cette dernière une sous-classe dynamique et ajouter la fonction de gestionnaire d’événement à une occurrence de la sous-classe.
L’écouteur d’événement associé est déclenché après un appel de la méthode NetStream.play()
, mais avant que la tête de lecture vidéo n’ait avancé.
L’objet transmis à la fonction de gestion d’événement onXMPData()
a une propriété data
, qui correspond à une chaîne. La chaîne est générée à partir d’un champ UUID de premier niveau (l’UUID 128 bits du champ de premier niveau est BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
). Ce champ UUID de premier niveau contient un document XML représenté sous forme de chaîne UTF-8 terminée par un octet nul.
Eléments de l’API associés
status | Evénement |
flash.events.StatusEvent
propriété StatusEvent.type =
flash.events.StatusEvent.STATUS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Distribué lorsque l’application tente de lire un fichier chiffré à l’aide de la gestion des droits numériques (DRM) en appelant la méthode NetStream.play()
. La valeur de la propriété du code d’état est la suivante : "DRM.encryptedFLV"
.
Remarque : cet événement n’est pas pris en charge pour la vidéo H. 264 dans AIR 3.0 for iOS.
Définit la valeur de la propriététype
d’un objet événement status
.
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. |
code | Description de l’état de l’objet. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
level | Catégorie du message, telle que "status" , "warning" ou "error" . |
target | Objet publiant son état. |
Eléments de l’API associés
CONNECT_TO_FMS | Constante |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Objet statique utilisé comme paramètre pour le constructeur d’une occurrence de NetStream. Il s’agit de la valeur par défaut du second paramètre du constructeur NetStream ; il n’est pas utilisé par l’application pour la lecture progressive. Lorsqu’il est utilisé, ce paramètre oblige le constructeur à se connecter à une occurrence de Flash Media Server.
DIRECT_CONNECTIONS | Constante |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Crée une connexion d’éditeur homologue à homologue. Transmet cette chaîne pour le deuxième paramètre (facultatif) au constructeur d’une occurrence de NetStream. Avec cette chaîne, une application peut créer une connexion NetStream dans le but de publier du contenu audio et vidéo vers des clients.
Dans cet exemple, le code qui crée les objets Video et NetStream et appelle les méthodes Video.attachNetStream()
et NetStream.play()
est placé dans une fonction de gestionnaire. Le gestionnaire n’est appelé que si la tentative de connexion à l’objet NetConnection a réussi ; c’est-à-dire lorsque l’événement netStatus
renvoie un objet info
avec une propriété code
qui indique la réussite de l’opération. Il est recommandé d’attendre l’établissement d’une connexion avant d’appeler la méthode NetStream.play()
.
package { import flash.display.Sprite; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.Event; public class NetConnectionExample extends Sprite { private var videoURL:String = "http://www.helpexamples.com/flash/video/cuepoints.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video = new Video(); public function NetConnectionExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Stream not found: " + videoURL); break; } } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function connectStream():void { addChild(video); var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = new CustomClient(); video.attachNetStream(stream); stream.play(videoURL); } } } class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate); } public function onCuePoint(info:Object):void { trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type); } }
mdata
permet de configurer la largeur et la hauteur d'une instance vidéo video
:
//Place the following in the connectStream() function //in the NetConnectionExample code var metaSniffer:Object=new Object(); stream.client=metaSniffer; //stream is the NetStream instance metaSniffer.onMetaData=getMeta; // Add the following function within the NetConnectionExample class private function getMeta (mdata:Object):void { video.width=mdata.width/2; video.height=mdata.height/2; }
Tue Jun 12 2018, 09:30 AM Z