J'ai créé un lecteur vidéo avec une liste de lecture. Après environ 45 minutes, le son s'arrête! La vidéo continue de jouer. Je joue des clips courts (environ 3 à 4 min chacun).Problème de mémoire du lecteur vidéo Flash
Le joueur est basé sur 2 images:
Cadre 1 définit la VidReference variable avec le nom de fichier:
VidReference = trackToPlay;
Frame 2 joue la vidéo:
var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
const buffer_time:Number = 2;
ns.bufferTime = buffer_time;
ns.client = this;
ns.play(VidReference);
var vid:Video = new Video();
vid.attachNetStream(ns);
addChild(vid);
vid_frame.addChild(vid);
Une fois la vidéo fait jouer il va à l'image 1 (pour mettre la nouvelle valeur à la variable VidReference) et retourne à l'image 2 pour lire la nouvelle vidéo. Suis-je censé supprimer l'objet vidéo chaque fois qu'il charge une nouvelle vidéo? Suis-je en train de déclarer un nouvel objet vidéo chaque fois que je suis en boucle (frame 1> 2) et en ajoutant chaque vidéo à la RAM, et à la fin écrasant le lecteur flash?
J'ai entendu parler de la collecte des ordures mais je ne saurais pas comment supprimer l'objet vidéo afin qu'il soit effacé (et la vidéo elle-même) de la mémoire. Lorsque je vérifie System.totalMemory, il ajoute à chaque fois qu'une nouvelle vidéo est chargée, je ne peux pas comprendre comment supprimer les anciennes vidéos de la mémoire.