2011-04-14 5 views
1

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.

Répondre

0

S'il vous plaît questions DonT rediffuser Repost

if(!vid){ 
     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); // you shouldnt add the video to2 display objects 
     vid_frame.addChild(vid); 
    }else{ 
     ns.play(VidReference); 
    } 
Questions connexes