Packageflash.net
Classepublic class NetStream
HéritageNetStream Inheritance EventDispatcher Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

La classe NetStream ouvre une connexion en flux continu unidirectionnel entre une application AIR ou Flash Player et Flash Media Server, ou entre une application AIR ou Flash Player et le système de fichiers local. Un objet NetStream est un canal dans un objet NetConnection. Ce canal peut publier un flux, à l'aide de NetStream.publish(), ou s'abonner à un flux publié et recevoir des données, à l'aide de NetStream.play(). Vous pouvez publier ou lire des données en direct (en temps réel) et des données préalablement enregistrées. Vous pouvez aussi utiliser les objets NetStream pour envoyer des messages texte à tous les clients abonnés (voir la méthode NetStream.send()).

La lecture de fichiers vidéo externes offre plusieurs avantages par rapport à l'intégration de vidéo dans un fichier SWF : amélioration des performances et de la gestion de la mémoire, indépendance par rapport aux cadences vidéo et SWF, etc.

Adobe AIR, ainsi que Flash Player 9.0.115.0 et versions ultérieures prennent en charge les fichiers dérivés du format conteneur MPEG-4 standard, notamment F4V, MP4, M4A, MOV, MP4V, 3GP et 3G2, si ceux-ci contiennent des données vidéo H.264 et/ou des données audio codées HEAAC v2. H.264 produit une qualité vidéo supérieure à un débit inférieur par rapport au même profil d'encodage dans Sorenson ou On2. HE-AAC v2 est une extension de AAC (format audio standard défini dans la norme vidéo MPEG-4) qui utilise les techniques Spectral Band Replication (SBR) et Parametric Stereo (PS) pour un codage plus efficace à des débits lents. Pour plus d'informations sur les codecs et les formats de fichier pris en charge, consultez la page http://www.adobe.com/go/hardware_scaling_fr, ainsi que la documentation de Flash Media Server.

La classe NetStream propose un certain nombre de méthodes et de propriétés que vous pouvez utiliser pour suivre la progression du chargement et de la lecture du fichier, et pour permettre à l'utilisateur de contrôler la lecture (arrêt, pause, etc.).

Flux de travail général pour l'audio ou la vidéo en flux continu : la procédure suivante résume le flux de travaux de la publication audio et vidéo en temps réel :

  1. Créez un objet NetConnection.
  2. Utilisez la méthode NetConnection.connect() pour connecter l'occurrence de l'application au serveur.
  3. Créez un objet NetStream pour créer un flux de données au sein de la connexion.
  4. Utiliser la méthode NetStream.attachAudio() pour capturer et envoyer des données audio via le flux et la méthode NetStream.attachCamera() pour capturer et envoyer des données vidéo.
  5. Utilisez la méthode NetStream.publish() pour attribuer au flux continu un nom unique et envoyer les données en continu au serveur afin que d'autres puissent les recevoir. Vous pouvez aussi enregistrer les données au fur et à mesure que vous les publiez afin que les utilisateurs puissent les lire ultérieurement.

Les fichiers qui s’abonnent au flux continu utiliseront le nom transmis à la méthode publish() lorsqu'ils appellent play(), et appelleront la même méthode NetConnection.connect() que l’éditeur. Ils doivent appeler la méthode Video.attachNetStream() pour diffuser la vidéo en continu et la méthode NetStream.play() pour la lire.

Utilisation des images-clés de données avec Flash Media Server : après avoir créé les objets NetConnection et NetStream, vous pouvez utiliser NetStream.send() pour ajouter des métadonnées aux données audio et vidéo en direct au fur et à mesure que vous les diffusez en continu au serveur. Les métadonnées peuvent être des informations comme la hauteur ou la largeur d'une vidéo, sa durée, le nom de son auteur, etc. Pour définir les métadonnées, utilisez le nom de gestionnaire spécial @setDataFrame comme premier argument de la méthode NetStream.send().

Réception de données à partir d'un flux Flash Media Server, d'un fichier F4V progressif ou d'un fichier FLV progressif : les fichiers F4V, FLV et Flash Media Server peuvent envoyer des objets é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 :

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.

Consulter les exemples

Voir aussi

flash.media.Video
flash.net.NetConnection
send()
client
onImageData
onMetaData
Principes de base de la vidéo
Introduction à l'utilisation de la vidéo


Propriétés publiques
 PropriétéDéfini par
  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
  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 doit tenter 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 traiter la diffusion ou les données des fichiers FLV.
NetStream
 Inheritedconstructor : 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
  farID : String
[lecture seule] Identifiant de l'extrémité connectée à cette occurrence de NetStream.
NetStream
  farNonce : String
[lecture seule] Valeur choisie réellement par l'autre extrémité de ce flux, unique pour cette connexion.
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
  nearNonce : String
[lecture seule] Valeur choisie réellement par cette extrémité du flux, unique pour 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
 Inheritedprototype : Object
[statique] Référence à l'objet prototype d'un objet de classe ou fonction.
Object
  soundTransform : SoundTransform
Contrôle le son dans l'objet NetStream.
NetStream
  time : Number
[lecture seule] Position de la tête de lecture, en secondes.
NetStream
Méthodes publiques
 MéthodeDéfini par
  
NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Crée un flux de diffusion en continu qui permet de lire des fichiers vidéo à l'aide de l'objet NetConnection spécifié.
NetStream
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Spécifie un flux audio en continu envoyé via un objet NetStream, à partir d'un objet Microphone transmis en tant que source.
NetStream
  
attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
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
 Inherited
Distribue un événement dans le flux d'événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d'événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
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
  
play(... arguments):void
Lit les fichiers multimédias.
NetStream
  
Commence la lecture des fichiers multimédia, avec plusieurs options de lecture.
NetStream
  
Extrait les métadonnées DRM d'un fichier multimédia enregistré localement.
NetStream
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
  
publish(name:String = null, type:String = null):void
Envoie des données audio, vidéo et des messages texte en diffusion continue d'un client au Flash Media Server, en enregistrant éventuellement le flux continu 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 dans le flux continu.
NetStream
  
Indique la cadence d'images des données vidéo entrantes.
NetStream
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l'objet EventDispatcher.
EventDispatcher
  
[statique] Supprime toutes les données du voucher de gestion de droits numériques (DRM) mises en cache localement.
NetStream
  
Reprend la lecture d'un flux vidéo en pause.
NetStream
  
seek(offset:Number):void
Recherche l'image-clé (également appelée Image-I dans l'industrie vidéo) la plus proche de l'emplacement spécifié.
NetStream
  
send(handlerName:String, ... arguments):void
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
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
  
Interrompt ou reprend la lecture d'un flux continu.
NetStream
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
 Inherited
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énements
 Evénement Synthèse Défini par
 Inherited[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 de code asynchrone natif.NetStream
 Inherited[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é 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
  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
Constantes publiques
 ConstanteDé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
Détails de la propriété
bufferLengthpropriété
bufferLength:Number  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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.



Implémentation
    public function get bufferLength():Number

Voir aussi

bufferTimepropriété 
bufferTime:Number  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie la durée de la mise en mémoire tampon des messages avant que l’affichage du flux ne commence. Par exemple, pour vous assurer que la lecture du flux continu ne soit pas interrompue pendant les 15 premières secondes, définissez bufferTime sur 15. L'application ne commence la lecture du flux continu que 15 secondes après la mise en mémoire tampon des données.

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.

Remarque : 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.

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, consultez 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 ce que l'application peut les mettre en mémoire tampon. Dans le cas d'une connexion bas débit, toutefois, 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 il peut les envoyer 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. Par exemple, si vous voulez vous assurer que la lecture du flux soit ininterrompue au cours des 15 premières secondes, définissez bufferTime sur 15 ; Flash commencera la lecture du flux uniquement 15 secondes après la mise en mémoire tampon des données.

Lors de la lecture d'un flux enregistré, si bufferTime est défini sur zéro, 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

Voir aussi

bytesLoadedpropriété 
bytesLoaded:uint  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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.



Implémentation
    public function get bytesLoaded():uint

Voir aussi

bytesTotalpropriété 
bytesTotal:uint  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Taille totale, en octets, du fichier chargé dans l'application.



Implémentation
    public function get bytesTotal():uint

Voir aussi

checkPolicyFilepropriété 
checkPolicyFile:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie si l'application doit tenter de télécharger un fichier de régulation interdomaines à partir du serveur du fichier vidéo chargé avant de commencer à charger ce dernier. Cette propriété est applicable lorsque vous utilisez un objet NetStream pour télécharger progressivement des données vidéo (fichiers autonomes) ou lorsque vous chargez des fichiers se trouvant en dehors du domaine du fichier appelant. Cette propriété n'est pas prise en compte lorsque vous utilisez un objet NetStream pour obtenir une ressource RTMP.

Définissez cette propriété sur true lorsque vous chargez un fichier vidéo qui se trouve hors du domaine du fichier SWF appelant et qu'il vous est nécessaire d'utiliser la méthode BitmapData.draw() pour accéder à la vidéo au niveau des pixels. Si vous appelez BitmapData.draw() sans définir la propriété checkPolicyFile sur true au chargement, vous risquez d'obtenir une exception SecurityError car le fichier de régulation requis n'a pas été téléchargé.

Si vous n'avez pas besoin d'accéder à la vidéo que vous chargez au niveau des pixels, il est préférable de ne pas définir checkPolicyFile sur true. La recherche d'un fichier de régulation consomme de la bande passante 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 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 à télécharger l’objet spécifié dans votre appel de NetStream.play(). 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é :

  1. L'application examine les fichiers de régulation préalablement téléchargés.
  2. 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().
  3. 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 le moteur d'exécution 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 , autrement dit l'URL qui doit faire l'objet des mesures de sécurité.

Pour plus d'informations sur les fichiers de régulation, consultez le chapitre « Sécurité de Flash Player » du manuel Programmation avec ActionScript 3.0.



Implémentation
    public function get checkPolicyFile():Boolean
    public function set checkPolicyFile(value:Boolean):void

Voir aussi

clientpropriété 
client:Object  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie l'objet sur lequel les méthodes de rappel sont invoquées pour traiter la diffusion ou les données des fichiers FLV. 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(), onTextData() et onXMPData().

Pour associer la propriété client à un gestionnaire d'événement :

  1. Créez un objet et affectez-le à la propriété client de l'objet NetStream :
    var customClient:Object = new Object();
         my_netstream.client = customClient;
  2. 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;
  3. 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 é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 :

  1. Créez une sous-classe avec une fonction de gestionnaire pour recevoir l'objet événement de données :
    class CustomClient {
            public function onMetaData(info:Object):void {
                trace("metadata: duration=" + info.duration + " framerate=" + info.framerate);
         }
  2. 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 é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 doit être définie sur un objet non null.

Voir aussi

currentFPSpropriété 
currentFPS:Number  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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.



Implémentation
    public function get currentFPS():Number
farIDpropriété 
farID:String  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Identifiant de l'extrémité connectée à cette occurrence de NetStream. Cette propriété n'est définie que pour les connexions RTMFP.



Implémentation
    public function get farID():String
farNoncepropriété 
farNonce:String  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Valeur choisie réellement par l'autre extrémité de ce flux, unique pour cette connexion. Cette valeur apparaît à l'autre extrémité du flux en tant que valeur nearNonce. Cette propriété n'est définie que pour les connexions RTMFP.



Implémentation
    public function get farNonce():String
infopropriété 
info:NetStreamInfo  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

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.



Implémentation
    public function get info():NetStreamInfo

Voir aussi

liveDelaypropriété 
liveDelay:Number  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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).

Cette propriété est surtout conçue pour une utilisation avec un serveur, tel que Flash Media Server. Pour en savoir plus, consultez 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
maxPauseBufferTimepropriété 
maxPauseBufferTime:Number  [lecture-écriture]

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).



Implémentation
    public function get maxPauseBufferTime():Number
    public function set maxPauseBufferTime(value:Number):void

Voir aussi

nearNoncepropriété 
nearNonce:String  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Valeur choisie réellement par cette extrémité du flux, unique pour cette connexion. Cette valeur apparaît à l'autre extrémité du flux en tant que valeur farNonce. Cette propriété n'est définie que pour les connexions RTMFP.



Implémentation
    public function get nearNonce():String
objectEncodingpropriété 
objectEncoding:uint  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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, consultez 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

Voir aussi

peerStreamsproprié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
soundTransformpropriété 
soundTransform:SoundTransform  [lecture-écriture]

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, consultez la description de la classe SoundTransform.



Implémentation
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

Voir aussi

timepropriété 
time:Number  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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 là 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

Voir aussi

Détails du constructeur
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

Crée un flux de diffusion en continu qui permet de lire des fichiers vidéo à l'aide de l'objet NetConnection spécifié.

Pour plus d'informations sur les codecs et les formats de fichier pris en charge, consultez la page http://www.adobe.com/go/hardware_scaling_fr, ainsi que la documentation de Flash Media Server.

Paramètres
connection:NetConnection — Objet NetConnection.
 
peerID:String (default = "connectToFMS") — Ce paramètre est facultatif. Définissez la valeur sur NetStream.CONNECT_TO_FMS pour une connexion à FMS. Pour publier directement sur des homologues (P2P), spécifiez NetStream.DIRECT_CONNECTIONS. Pour lancer directement la lecture depuis un homologue donné, spécifiez l'identité de ce dernier (voir NetConnection.nearID et NetConnection.farID ). La valeur de la propriété NetConnection.protocol doit être "rtmfp" si le paramètre peerID est défini sur un homologue. Le paramètre peerID est ignoré pour les connexions non RTMFP. ActionScript utilise la valeur par défaut "connectToFMS" du paramètre peerID pour capturer le moment où une valeur nulle est transmise en tant que paramètre à la méthode NetStream(), par programmation.

Toutefois, le paramètre peerID étant facultatif, le code suivant continue de fonctionner pour une lecture progressive sur une connexion client/serveur :

new NetStream(nc:NetConnection);

Valeur émise
ArgumentError — L'occurrence de NetConnection n'est pas connectée.

Voir aussi


Exemple

Le code suivant illustre une connexion permettant de télécharger et d'afficher, progressivement, une vidéo affectée à la variable videoURL :
var my_nc:NetConnection = new NetConnection();
            my_nc.connect(null);
            var my_ns:NetStream = new NetStream(my_nc);
            my_ns.play(videoURL);
            var my_video:Video = new Video();
            my_video.attachNetStream(my_ns);
            addChild(my_video);

Le code suivant illustre une connexion permettant de diffuser et d'afficher une vidéo (affectée à la variable videoURL) sur une occurrence de Flash Media Server distante spécifiée dans la commande connect() :
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_ns.play(videoURL);
            var my_video:Video = new Video();
            my_video.attachNetStream(my_ns);
            addChild(my_video);
Détails de la méthode
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

Spécifie un flux audio en continu envoyé via 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é.

La méthode attachAudio est conçue pour une utilisation avec Flash Media Server. Cette méthode est souvent appelée par un utilisateur qui envoie des données audio en direct (ou des données vidéo en direct avec son) depuis un ordinateur client vers le serveur.

Vous pouvez appeler cette méthode avant ou après la méthode publish() et le démarrage réel de la transmission. Les abonnés qui souhaitent entendre le son doivent appeler la méthode NetStream.play(). Réglez la propriété rate du microphone afin qu'elle corresponde à celle du périphérique de capture audio, puis définissez le seuil de silence via la méthode setSilenceLevel(). Vous pouvez contrôler les propriétés audio (volume et balance) de ce flux audio audio via la propriété soundTransform de l'objet du microphone.

var conn:NetConnection = new NetConnection();
     conn.connect("rtmp://server.domain.com/path");
     var stream:NetStream = new NetStream(conn);
     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;
     stream.attachAudio(live_mic);
     stream.publish("mic_stream","live")

Paramètres

microphone:Microphone — Source du flux audio à transmettre.

Voir aussi

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 en savoir plus, consultez 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 :

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é.
  • Si vous omettez ce paramètre, l'application capture toutes les données vidéo jusqu’à ce que vous transmettiez la valeur null à attachCamera.
  • Si vous transmettez 0, l'application capture une seule image vidéo. Utilisez cette valeur pour transmettre des « instantanés » dans un flux préexistant. Flash Player ou AIR interprète les arguments non valides, négatif ou non numériques comme valeur 0.
  • Si vous transmettez une valeur positive, l'application capture une image vidéo unique, puis ajoute une pause de la durée spécifiée en suffixe sur l’instantané. Utilisez cette valeur pour créer des effets d’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

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 :

Voir aussi

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

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

Valeur renvoyée
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

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(). 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.

Voir aussi

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

Lit les fichiers multimédias.

Pour plus d'informations sur les codecs et les formats de fichier pris en charge, consultez la page http://www.adobe.com/go/hardware_scaling_fr, ainsi que la documentation de Flash Media Server.

Pour visualiser les données vidéo, créez un objet Video et appelez la méthode Video.attachNetStream(). Pour diffuser des données audio en continu à partir d'un microphone, utilisez la méthode NetStream.attachAudio(). Utilisez l'objet Microphone pour contrôler certains aspects du son.

Appelez la méthode DisplayObjectContainer.addChild() pour ajouter le son à un objet de la liste d'affichage. Vous pouvez ensuite créer un objet Sound pour contrôler certains aspects du son. Pour plus d'informations, consultez la méthode DisplayObjectContainer.addChild().

Si le fichier vidéo est introuvable, l'événement netStatus est distribué. Pour arrêter un flux continu en cours de lecture, utilisez la méthode close().

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 comporte le contenu SWF.

Vous ne pouvez pas vous connecter aux ports généralement réservés. Vous trouverez la liste complète des ports bloqués dans la section « Restriction des API de réseau » du chapitre sur la sécurité du manuel Programmation ActionScript 3.0.

Vous ne pouvez pas vous connecter aux ports généralement réservés. Vous trouverez la liste complète des ports bloqués dans la section « Restriction des API de réseau » du chapitre sur la sécurité du manuel Programmation ActionScript 3.0.

Pour plus d'informations sur la sécurité, consultez les références suivantes :

Paramètres

... arguments — Emplacement du fichier multimédia à lire en tant que chaîne, propriété URLRequest.url ou variable référençant l'un ou l'autre. Dans Flash Player et dans le contenu AIR hors du sandbox de sécurité de l'application, vous pouvez lire les fichiers vidéo locaux stockés dans le même répertoire que le fichier SWF ou dans un sous-répertoire. Vous ne pouvez toutefois pas naviguer vers un répertoire de niveau supérieur.

Avec Flash Media Server, play() prends les arguments suivants :

NomObligatoireDescription
name:Object Obligatoire Nom d'un fichier enregistré, un identifiant des données en direct publiées par NetStream.publish() ou false. Si false, le flux arrête la lecture et tout paramètre supplémentaire est ignoré. Pour plus d'informations sur la syntaxe du nom de fichier, consultez le tableau répertoriant les formats de fichier ci-après.
start:Number Facultatif Renvoie l'instant de départ, en secondes. Les valeurs autorisées sont -2, -1, 0 ou un nombre positif. La valeur par défaut est -2, qui recherche un flux en direct, puis un flux enregistré, et ouvre un flux en direct lorsqu'il ne trouve ni l'un ni l'autre. Si -1, lit uniquement un flux en direct. Si 0 ou un nombre positif, lit un flux enregistré en commençant par start en secondes.
len:Number Facultatif si start est spécifié. Durée de la lecture, en secondes. Les valeurs autorisées sont -1, -0 ou un nombre positif. La valeur par défaut est -1, qui lit un flux en direct ou enregistré jusqu'à la fin. Si 0, lit une unique image de start secondes par rapport au début d'un flux enregistré. S'il s'agit d'un nombre positif, lit un flux en direct ou enregistré pendant len secondes.
reset:Object Facultatif si len est spécifié. Indique si une liste de lecture doit être effacée. La valeur par défaut est 1 ou true, qui efface tous les appels play précédents et lit name immédiatement. Si 0 ou false, ajoute le flux dans une liste de lecture. Si 2, conserve la liste de lecture et renvoie tous les messages du flux en une seule opération, plutôt que par intervalles. Si 3, efface la liste de lecture et renvoie tous les messages du flux en une seule opération.

Vous pouvez lire les formats de fichier décrits dans le tableau suivant. La syntaxe varie selon le format de fichier.

Format de fichierSyntaxeExemple
FLVSpécifiez le nom du flux en tant que chaîne, sans extension de nom de fichier. ns.play("myFLVStream");
MP3 ou ID3 Spécifiez le nom du flux en tant que chaîne, avec le préfixe mp3: ou id3:, respectivement, et sans extension de nom de fichier. ns.play("mp3:myMP3Stream"); ns.play("id3:myID3data");
Fichiers basés sur le format MPEG-4 (F4V, MP4, entre autres) Spécifiez le nom du flux en tant que chaîne, avec ou sans l'extension de nom de fichier, mais avec le préfixe mp4:. Le préfixe indique à Flash Media Server que le fichier contient des données vidéo H.264 et des données audio AAC au format conteneur MPEG-4 Part 14. ns.play("mp4:myVideo.f4v") ns.play("mp4:myVideo.mp4") ns.play("mp4:myVideo")


Evénements
status:StatusEvent — 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.

Voir aussi


Exemple
Flash Media Server Cet exemple lit un fichier F4V enregistré, en commençant au début, pendant 100 secondes au maximum :
ns.play("mp4:record1.f4v", 0, 100, true);
Flash Media Server Cet exemple lit un flux FLV en direct publié par un client, du début à la fin, en commençant immédiatement et en effaçant tous les flux précédents :
ns.play("stephen");
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

Commence la lecture des fichiers multimédia, avec plusieurs options de lecture.

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.

Utilisez la méthode play2() pour basculer vers un flux de même contenu chiffré avec des débits différents ou pour changer de flux à partir d'une liste de lecture. 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. On appelle diffusion dynamique en continu l'utilisation d'ActionScript pour changer de flux. Pour plus d'informations, recherchez « diffusion dynamique en continu » dans le « Guide du développeur d'Adobe Flash Media Server » à l'adresse www.adobe.com/go/learn_fms_devguide_fr. 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 dynamique en continu, consultez la classe DynamicStream pour obtenir un exemple d'implémentation. Téléchargez la classe et la documentation correspondante à l'adresse suivante : www.adobe.com/go/fms_dynamicstreaming_fr.

Paramètres

param:NetStreamPlayOptions

Voir aussi

AIR-only preloadEmbeddedData()méthode 
public function preloadEmbeddedData(param:NetStreamPlayOptions):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.5

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 :

Remarque : si vous utilisez le même objet NetStream pour précharger les métadonnées et lire le contenu, vous devez attendre 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.

Voir aussi

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, vidéo et des messages texte en diffusion continue d'un client au Flash Media Server, en enregistrant éventuellement le flux continu pendant la transmission. Cette méthode n'est accessible qu'à l'éditeur du flux continu spécifié.

Vous pouvez enregistrer des fichiers au format FLV ou MPEG-4. Si vous enregistrez un fichier au format MPEG-4, vous devez utiliser un outil d'aplatissement pour modifier ou lire le fichier dans une autre application. Pour télécharger cet outil, accédez au site suivant : www.adobe.com/go/learn_fms_flattener_fr.

N'utilisez pas cette méthode pour lire un flux continu ayant déjà été publié et enregistré. Pour lire un flux continu, appelez la méthode NetStream.play().

var subscribeNS:NetStream = new NetStream(myNetConnection);
  subscribeNS.play("streamToPlay");

Lorsque Flash Media Server enregistre un flux continu, il crée un fichier et l'enregistre dans un sous-répertoire du répertoire de l'application situé sur le serveur. Chaque flux est stocké dans un répertoire dont le nom correspond au nom de l'occurrence de l'application transmis à NetConnection.connect(). Le serveur crée ces répertoires automatiquement. Vous n’avez donc pas à en créer un pour chaque occurrence de l'application. Le code suivant, par exemple, vous indique comment vous connecter à une occurrence spécifique d’une application enregistrée dans le sous-répertoire lectureSeries du répertoire de votre application. Un fichier nommé lecture.flv est enregistré dans le sous-répertoire /votreDossierApps/lectureSeries/streams/Monday :

var myNC:NetConnection = new NetConnection();
  myNC.connect("rtmp://server.domain.com/lectureSeries/Monday");
  var myNS:NetStream = new NetStream(myNC);
  myNS.publish("lecture", "record");

L'exemple suivant vous indique comment vous connecter à une autre occurrence de la même application, mais en émettant une commande de publication identique. Un fichier nommé lecture.flv est stocké dans le sous-répertoire /votreDossierApps/lectureSeries/streams/Tuesday :

var myNC:NetConnection = new NetConnection();
  myNC.connect("rtmp://server.domain.com/lectureSeries/Tuesday");
  var myNS:NetStream = new NetStream(myNC);
  myNS.publish("lecture", "record");

Si vous ne transmettez pas, pour le nom de l'occurrence, une valeur correspondant à la valeur transmise à la propriété name, elle est enregistrée dans le sous-répertoire /votreDossierApp/nomApp/streams/_definst_. Pour plus d'informations sur l'utilisation des noms d'occurrence, consultez la méthode NetConnection.connect(). Pour plus d'informations sur la lecture des fichiers vidéo, consultez la méthode NetStream.play().

Lorsqu'un client d'une application Flash Media Server appelle publish(), l'application reçoit un événement onPublish. L'application doit gérer l'événement dans un script coté serveur. Pour arrêter la publication, appelez la méthode NetStream.close(). Lorsque le client arrête la publication, l'application reçoit un événement onUnpublish. Pour plus d'informations, consultez le Guide de référence ActionScript de Flash Media Server côté serveur .

Cette méthode peut distribuer un événement netStatus associé à différents objets d'informations. Si, par exemple, une personne publie déjà sur un flux continu en utilisant le nom spécifié, l'événement netStatus est distribué avec une propriété code correspondant à NetStream.Publish.BadName. Pour plus d'informations, consultez l'événement netStatus.

Paramètres

name:String (default = null) — Chaîne identifiant le flux continu. Les clients qui s'abonnent à ce flux continu doivent transmettre le même 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 publier des fichiers aux formats décrits dans le tableau suivant. La syntaxe varie selon le format de fichier.

Format de fichierSyntaxeExemple
FLVSpécifiez le nom du flux en tant que chaîne, sans extension de nom de fichier. ns.publish("myFLVStream");
MP3 ou ID3 Spécifiez le nom du flux en tant que chaîne, avec le préfixe mp3: ou id3:, respectivement, et sans extension de nom de fichier. ns.publish("mp3:myMP3Stream"); ns.publish("id3:myID3data");
Fichiers basés sur le format MPEG-4 (F4V, MP4, entre autres) Spécifiez le nom du flux en tant que chaîne, avec ou sans l'extension de nom de fichier, mais avec le préfixe mp4:. Le préfixe indique à Flash Media Server que le fichier contient des données vidéo H.264 et des données audio AAC au format conteneur MPEG-4 Part 14. ns.publish("mp4:myVideo.f4v") ns.publish("mp4:myVideo.mp4"); ns.publish("mp4:myVideo");

 
type:String (default = null) — Chaîne spécifiant le mode de publication du flux continu. Les valeurs supportées sont record, append et live. La valeur par défaut est live.
  • Si vous transmettez « record », Flash Media Server publie et enregistre des données en direct, qu'il place dans un nouveau fichier dont le nom correspond à la valeur transmise au paramètre name. Si le fichier existe déjà, il est remplacé.
  • Si vous transmettez « append », Flash Media Server publie et enregistre des données en direct, qu'il ajoute à un fichier dont le nom correspond à la valeur transmise au paramètre name. Si aucun fichier correspondant au paramètre name n'est détecté, un fichier est créé.
  • Si vous omettez ce paramètre ou utilisez « live », Flash Media Server publie des données en direct sans les enregistrer. Si un fichier dont le nom correspond à la valeur transmise au paramètre name existe, il est supprimé.

Voir aussi

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

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 continu spécifié, et non à l'éditeur de ce dernier.

Cette méthode est conçue à l'origine pour une utilisation avec Flash Media Server. Pour en savoir plus, consultez la description de la classe.

Vous pouvez appeler cette méthode avant ou après la méthode NetStream.play() et le démarrage réel de la transmission. Vous pouvez, par exemple, associer ces méthodes à un bouton sur lequel l'utilisateur clique pour désactiver et activer le son du flux continu audio entrant.

Si le flux continu spécifié contient uniquement des données audio, la transmission de la valeur false à cette méthode interdit toute incrémentation additionnelle de NetStream.time.

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.

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

Indique si les données vidéo entrantes sont lues dans le flux continu. Cette méthode n'est accessible qu'aux clients abonnés au flux continu spécifié, et non à l'éditeur de ce dernier.

Cette méthode est conçue à l'origine pour une utilisation avec Flash Media Server. Pour en savoir plus, consultez la description de la classe.

Vous pouvez appeler cette méthode avant ou après la méthode NetStream.play() et le démarrage réel de la transmission. Vous pouvez, par exemple, associer ces méthodes à un bouton sur lequel l'utilisateur appuie pour afficher ou masquer le flux vidéo entrant.

Si le flux continu spécifié contient uniquement des données vidéo, la transmission de la valeur false à cette méthode interdit toute incrémentation additionnelle de NetStream.time.

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.

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

Indique la cadence d'images des données vidéo entrantes. Cette méthode n'est accessible qu'aux clients abonnés au flux continu spécifié, et non à l'éditeur de ce dernier.

Cette méthode est conçue à l'origine pour une utilisation avec Flash Media Server. Pour en savoir plus, consultez la description de la classe.

Vous pouvez appeler cette méthode avant ou après la méthode NetStream.play() et le démarrage réel de la transmission. Par exemple, vous pouvez associer ces méthodes à un champ de texte afin que l'utilisateur puisse définir la cadence d'images des données vidéo entrantes.

Pour interrompre la réception des données vidéo, transmettez la valeur 0 au paramètre FPS. Pour déterminer la cadence d'images actuelle, utilisez NetStream.currentFPS.

Si vous transmettez une valeur au paramètre FPS en vue de limiter la cadence d'images de la vidéo, Flash Media Server tente de réduire la cadence tout en préservant l'intégrité de la vidéo. Le serveur envoie le nombre d'images minimum afin de satisfaire la cadence désirée entre deux images-clés. Notez toutefois que les images intermédiaires doivent être envoyées conjointement ; dans le cas contraire, la vidéo risque d'être corrompue. 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.

Paramètres

FPS:Number — Indique le nombre d'images par seconde lors de la lecture des données vidéo entrantes.

AIR-only resetDRMVouchers()méthode 
public static function resetDRMVouchers():void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Supprime toutes les données du voucher de gestion de droits numériques (DRM) mises en cache localement.

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.

Voir aussi


Exemple

L'exemple suivant réinitialise tous les vouchers DRM :
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

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.

Voir aussi

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

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.

Sur Flash Media Server, le comportement de seek() est contrôlé par la valeur de l'élément EnhancedSeek du fichier de configuration Application.xml.

Si la valeur de EnhancedSeek est false, le serveur utilise le mode de recherche normal. En mode de recherche normal, le serveur commence la diffusion en continu à partir de l'image-clé la plus proche. Par exemple, si 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 via l'image clé placée à 0 secondes. 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.

Si EnhancedSeek est true, valeur par défaut, 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 crée toutefois 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 et toute image P située entre l'image-clé et le point de recherche sont envoyées au client.

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.
  • Pour revenir au début du flux continu, transmettez 0 pour offset.
  • Pour effectuer une recherche en partant du début du flux continu, transmettez le nombre de secondes à appliquer. Par exemple, pour placer la tête de lecture à 15 secondes du début (ou sur l'image-clé avant 15 secondes), utilisez myStream.seek(15).
  • Pour faire une recherche par rapport à la position actuelle, transmettez NetStream.time + n ou NetStream.time - n pour rechercher n secondes vers l'avant ou l'arrière, par rapport à la position actuelle. Par exemple, pour revenir en arrière de 20 secondes par rapport à la position actuelle, utilisez NetStream.seek(NetStream.time - 20).

Voir aussi

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 disponible que pour l'éditeur du flux spécifié et est conçue pour une utilisation 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 envoyé à 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 Array dont les propriétés définissent les valeurs des métadonnées. Les éditeurs doivent définir des noms de propriété que les abonnés puissent comprendre facilement ; consultez la documentation de Flash Media Server pour obtenir une liste des noms de propriété suggérés.

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. Consultez la documentation de Flash Media Server 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.

Voir aussi


Exemple

L'exemple suivant crée deux objets 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.play("dummy");
               ns2.client = new CustomClient();
               vid.attachNetStream(ns2);
               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);
    }
 }

L'exemple suivant crée des métadonnées et les ajoute à un flux en direct :
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() );        
    }
}

Pour répondre à une image-clé de données ajoutée à une vidéo, le client doit définir un gestionnaire d'événement 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);
 }

Cet exemple décrit la création d'une liste de lecture sur le serveur :
// 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);

Si le fichier vidéo enregistré contient uniquement des messages de données, vous pouvez soit le lire à la vitesse à laquelle il a été enregistré à l'origine, soit obtenir tous les messages de données en une seule opération.
//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);
AIR-only 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

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 ».
  • Dans le cas d'une authentification « drm », les informations d'identification fournies sont authentifiées par rapport à Flash Media Rights Management Server (FMRMS).
  • Dans le cas d'une authentification « proxy », les informations d'identification fournies sont authentifiées par rapport au serveur proxy et doivent correspondre avec celles requises par ce dernier. Par exemple, l'option « proxy » permet à une société d'authentifier l'application par rapport au serveur proxy avant que l'utilisateur n'accède à Internet. A moins qu'une authentification anonyme soit utilisée, après l'authentification proxy, l'utilisateur doit encore authentifier par rapport à FMRMS afin d'obtenir le bon et lire le contenu. Vous pouvez à nouveau faire appel à la méthode setDRMAuthenticationcredentials(), avec l'option « drm », pour l'authentification par rapport à FMRMS.

Voir aussi

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

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.

Voir aussi

Détails de l'événement
asyncError Evénement
Type d'objet évé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

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 constante AsyncErrorEvent.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.

Voir aussi

AIR-only drmAuthenticate Evénement  
Type d'objet évé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

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.

Utilisez la méthode setDRMAuthenticationCredentials() de l'objet NetStream pour authentifier l'utilisateur. Si l'authentification de l'utilisateur échoue, l'application relance l'authentification et distribue un nouvel événement DRMAuthenticateEvent pour l'objet NetStream.

La constante 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.

Voir aussi

AIR-only drmError Evénement  
Type d'objet évé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

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.

La constante DRMErrorEvent.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.

Voir aussi

AIR-only drmStatus Evénement  
Type d'objet évé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

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.

L'objet DRMStatusEvent contient des informations concernant le bon : possibilité d'accéder au contenu hors connexion, date d'expiration du bon ou fin d'affichage du contenu, entre autres.

La constante DRMStatusEvent.DRM_STATUS définit la valeur de la propriété type d'un objet é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

Voir aussi

ioError Evénement  
Type d'objet évé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

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 é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.
netStatus Evénement  
Type d'objet évé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

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.

Définit la valeur de la propriété type d'un objet é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.

Voir aussi

onCuePoint Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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, consultez la documentation Flash Media Server.

onCuePoint est en fait une propriété de l'objet NetStream.client. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

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é.

Il est possible d'imbriquer les types de point de repère suivants dans un fichier vidéo :

L'objet é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 programmation 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.

Voir aussi

AIR-only onDRMContentData Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.5

Etablit un écouteur pour répondre lorsque AIR extrait les métadonnées de contenu DRM intégrées dans un fichier multimédia.

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 en fait une propriété de l'objet NetStream.client. Bien qu'elle ne soit pas un événement, elle est répertoriée dans la section Events, car elle correspond à un événement data lors du préchargement des données intégrées depuis un fichier multimédia local. Pour plus d'informations, consultez 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 :

Voir aussi

onImageData Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9.0.115.0

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.

onImageData est en fait une propriété de l'objet NetStream.client. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

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

Le code de cet exemple utilise la propriété 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. Reportez-vous à 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 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.play("yourURL");
                my_ns.client = customClient;

                var my_video:Video = new Video();
                my_video.attachNetStream(my_ns);
                addChild(my_video);

            }

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

        }

}

Voir aussi

onMetaData Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

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, consultez la documentation Flash Media Server.

onMetaData est en fait une propriété de l'objet NetStream.client. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

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 événement transmis au gestionnaire d'événement onMetaData contient une propriété pour chaque élément de données.

Voir aussi

onPlayStatus Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Etablit un écouteur pour qu'il réponde lorsque un objet NetStream a terminé la lecture d'un flux. L'objet é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. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

Cet événement peut renvoyer un objet d'informations doté des propriétés suivantes :

Propriété du codePropriété de niveauSignification
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.

Voir aussi

onTextData Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9.0.115.0

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 la mise en forme basées sur la spécification Timed Text 3GP.

onTextData est en fait une propriété de l'objet NetStream.client. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

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

Le code de cet exemple utilise la propriété 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. Reportez-vous à 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 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.play("yourURL");
                my_ns.client = customClient;

                var my_video:Video = new Video();
                my_video.attachNetStream(my_ns);
                addChild(my_video);

            }

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

        }

}

Voir aussi

onXMPData Evénement  

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

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, consultez la documentation Flash Media Server.

onXMPData est en réalité une propriété de l'objet NetStream.client. Ce n'est pas un événement, mais il est listé dans la section Events car il répond à un événement de données, soit lorsqu'il diffuse avec Flash Media Server, soit lors de la lecture d'un fichier FLV. Pour plus d'informations, consultez 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. Vous devez en revanche définir une fonction de rappel unique et l'associer directement à l'un des objets suivants :

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.

Voir aussi

AIR-only status Evénement  
Type d'objet événement: flash.events.StatusEvent
propriété StatusEvent.type = flash.events.StatusEvent.STATUS

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

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 ».

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.

Voir aussi

Détails de la constante
CONNECT_TO_FMSConstante
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

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_CONNECTIONSConstante 
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

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.

Exemples Utilisation des exemples
NetConnectionExample.as

L'exemple suivant utilise un objet Video avec les classes NetConnection et NetStream pour charger et lire un fichier FLV. Pour exécuter cet exemple, vous avez besoin d'un fichier FLV dont le nom et l'emplacement correspondent avec la variable transmise à videoURL ; dans ce cas, un fichier FLV appelé Video.flv et stocké dans le même répertoire que le fichier SWF.

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 = "Video.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        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 {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }
    }
}

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