2011-04-14 243 views
1

我用播放列表制作了视频播放器。大约45分钟后,声音停止!视频继续播放。我播放短片(每个大约3至4分钟)。Flash视频播放器内存问题

玩家为2帧:

1帧定义了可变VidReference的文件名:

VidReference = trackToPlay; 

帧2播放视频:

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

一旦视频是完成播放到帧1(将新值添加到VidReference变量)并返回到帧2播放新视频。 我是否应该在每次加载新视频时删除视频对象?每次我循环播放(帧1> 2)并将每个视频添加到RAM时,我是否实际上宣布了一个新的视频对象,并最终压倒Flash播放器?

我听说过关于垃圾收集,但我不知道如何删除的视频对象,因此它从内存中清除(和影片本身太)。

当我检查System.totalMemory它的每一个新的视频加载时间加起来,我无法弄清楚如何从内存中删除旧的视频。

回答

0

请不要转贴问题 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); 
    }