as3 - Comment arrêter la vidéo et détacher NetStream
J'ai le streaming vidéo à partir du serveur, et plus tard je veux ajouter une autre juste à côté. c'est tout bon, je l'ai fait. Maintenant, mon problème vient quand je veux supprimer la vidéo. J'ai réussi à l'enlever de l'écran, mais je peux entendre que la vidéo est toujours en cours de lecture à l'arrière-plan. Alors, comment je peux arrêter de diffuser cette vidéo?
Voici mon code pour le montage de la vidéo:
ns = new NetStream(connection);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play(item[1].toString() + ".flv");
video = new Video();
video.attachNetStream( ns );
video.width = 160;
video.height = 120;
videoWrapper = new UIComponent();
videoWrapper.addChild( video );
videos.addElement( videoWrapper );
et voici pour enlever
videos.removeElement(myVideos[p][1]); //myVideos[p][1] is a reference of videoWrapper
OriginalL'auteur Giedrius | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez déposer une connexion en appelant
video.attachNetStream(null)
, ou de fermer le flux de données avecns.close();
Il est probablement préférable de faire les deux.
Le nom de ns vient de votre propre code:
ns = new NetStream(connection);
Vous devez garder cette instance de autour de. Je ne pense pas que vous pouvez obtenir à partir de la vidéo de l'instance.Je suis aussi curieux; pourquoi êtes-vous l'ajout d'un composant avec l'écran vidéo à l'écran de la vidéo?
yep, ça a fonctionné, j'ai juste ajouté de référence de ns en un tableau, et de l'appeler à partir de la fonction où im de clôture de la vidéo. Maintenant, concernant votre question, je ne sais pas si je comprends bien, parce que mes connaissances sur l'as3 est très minime. pouvez-vous expliquer un peu? De toute façon, im ajout de la vidéo dans videoWrapper, à propos de la vidéo n'est pas visible et que videoWrapper va de vidéos, ce qui est l'ID de Groupe créé en mxml.
C'est surtout la dernière ligne qui ressemble ombragé
videos.addElement( videoWrapper );
. Il semble que cela devrait créer une dépendance circulaire (par exemple, en essayant de montrer obj1 qui est d'essayer de montrer obj2 qui à son tour tente de montrer obj1 etc). Je ne suis pas familier avec flex cependant, je suis peut-être trompé.OriginalL'auteur Jonatan Hedborg
Sur un vidéo normale objet, ne pas appeler
attachNetStream(null)
, car AS3, plus tard, ne permettra pas à effacer la dernière image de la vidéo à partir de la vidéo avec.clear()
Ressemble à un bug.
Utilisation
ns.close()
, puis utilisezvid.clear()
, de sorte que la vidéo de l'objet peut être à nouveau transparente.Sur StageVideo, c'est différent:
Vous pouvez appeler
vid.attachNetStream(null)
, il va supprimer la dernière image aussi de la stagevideo.Attention, il ne s'arrête pas le jeu lui-même. Vous devez appeler
ns.close();
OriginalL'auteur Gábor Dani