Flash Player缓存问题

时间:2011-04-13 16:23:51

标签: flash

我制作了一个flash视频点唱机,因此它会在几个小时内读取F4V文件的动态播放列表。 一切都运作良好,但大约45分钟后声音停止,2小时后,Flash播放器插入崩溃。 看起来缓存不接受更多F4V视频然后崩溃。如果我每2小时自动刷新浏览器它可以工作,但我想避免刷新浏览器,只是清除闪存播放器缓存,如果这是F4V去的地方? 我找不到任何有关F4V文件播放时的信息!

修改

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

此功能可检测视频何时播放,仍然在第2帧:

function netStatusHandler(event:NetStatusEvent):void
{
switch (event.info.code)
{
case "NetStream.Play.StreamNotFound": newTrack();
break;
case "NetStream.Play.Stop": newTrack();
break;
}
}

函数newTrack()只是给变量trackToPlay一个值(下一个视频的文件名)。然后对gotoAndPlay第1帧说,所以它有点重新初始化玩家。对象在第2帧中重新声明,这是问题吗?

大卫

2 个答案:

答案 0 :(得分:1)

听起来像是内存不足。你是否正在清理旧的f4v,以便你永远不会只是不断要求记忆?

尝试对其进行分析,或使用类似http://jpauclair.net/flashpreloadprofiler/

的内容

有关跟踪记忆问题的帮助,请查看http://divillysausages.com/blog/tracking_memory_leaks_in_as3(无耻的自我推销)

答案 1 :(得分:0)

它不是缓存问题。缓存在硬盘驱动器上分配空间,因此如果没有填满,则不会出现问题 这听起来像你不是垃圾收集而不是正确地重复使用视频对象。 发布一些代码,以便我们解决它

相关问题