Contrôle de la lecture de la vidéoFlash Player 9 et ultérieur, Adobe AIR 1.0 et ultérieur La classe NetStream comporte quatre méthodes principales pour contrôler la lecture vidéo : pause() : interrompt la lecture d’un flux vidéo. Si la lecture de la vidéo est déjà interrompue, l’appel de cette méthode n’a aucun effet. resume() : reprend la lecture d’un flux vidéo interrompu. Si la vidéo est en cours de lecture, l’appel de cette méthode n’a aucun effet. seek() : recherche l’image-clé la plus proche de l’emplacement spécifié (décalage, exprimé en secondes, par rapport au début du flux). togglePause() : interrompt ou reprend la lecture d’un flux. Remarque : il n’existe pas de méthode stop(). Pour arrêter la lecture de la vidéo, il est nécessaire de la mettre en pause et de retourner au début du flux vidéo.
Remarque : la méthode play() ne reprend pas la lecture, elle est destinée au chargement de fichiers vidéo.
L’exemple suivant montre comment contrôler la lecture d’une vidéo à l’aide de divers boutons. Pour exécuter cet exemple, créez un document et ajoutez quatre occurrences de boutons à l’espace de travail (pauseBtn, playBtn, stopBtn et togglePauseBtn) : var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); ns.play("video.flv"); function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore error } var vid:Video = new Video(); vid.attachNetStream(ns); addChild(vid); pauseBtn.addEventListener(MouseEvent.CLICK, pauseHandler); playBtn.addEventListener(MouseEvent.CLICK, playHandler); stopBtn.addEventListener(MouseEvent.CLICK, stopHandler); togglePauseBtn.addEventListener(MouseEvent.CLICK, togglePauseHandler); function pauseHandler(event:MouseEvent):void { ns.pause(); } function playHandler(event:MouseEvent):void { ns.resume(); } function stopHandler(event:MouseEvent):void { // Pause the stream and move the playhead back to // the beginning of the stream. ns.pause(); ns.seek(0); } function togglePauseHandler(event:MouseEvent):void { ns.togglePause(); } Un clic sur l’occurrence de bouton pauseBtn pendant la lecture de la vidéo provoque la mise en pause de celle-ci. Si la lecture de la vidéo est déjà en pause, l’appel de cette méthode n’a aucun effet. Un clic sur l’occurrence de playBtn reprend la lecture de la vidéo si celle-ci était en pause, sinon ce bouton n’a aucun effet. Détection de la fin d’un flux vidéoPour afficher le début et la fin d’un flux vidéo, vous devez ajouter à l’occurrence de NetStream un écouteur pour l’événement netStatus. L’exemple suivant montre comment écouter les divers codes pendant la lecture de la vidéo : ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); function statusHandler(event:NetStatusEvent):void { trace(event.info.code) } Le code précédent affiche le résultat suivant : NetStream.Play.Start NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Flush NetStream.Play.Stop NetStream.Buffer.Empty NetStream.Buffer.Flush Les deux codes d’événement qu’il est nécessaire d’écouter sont « NetStream.Play.Start » et « NetStream.Play.Stop », qui signalent le début et la fin de la lecture de la vidéo. Le fragment de code suivant utilise une instruction « switch » pour filtrer ces deux codes et émettre un message : function statusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Play.Start": trace("Start [" + ns.time.toFixed(3) + " seconds]"); break; case "NetStream.Play.Stop": trace("Stop [" + ns.time.toFixed(3) + " seconds]"); break; } } En écoutant l’événement netStatus (NetStatusEvent.NET_STATUS), vous pouvez créer un lecteur vidéo qui chargera la vidéo suivante dans une liste de lecture une fois la lecture de la vidéo en cours terminée. |
![]() |