我正在使用mx:videodisplay播放视频文件(.flv和.mp4),它运行正常。它做了它应该做的事情 - 它完美地播放视频文件。但每次重新加载页面时,源视频文件都会重新加载到我的计算机上,这会导致plugin-container.exe使用的内存相应增加,直到没有剩余可用内存并且崩溃为止。
这是三次重新加载后的任务管理器。
首次重装前
http://i.stack.imgur.com/4PJDe.jpg
第三次重装后
http://i.stack.imgur.com/Yivtk.jpg
所以我的问题是:重新加载页面后,有没有办法删除下载的文件?
如果您想知道我为什么需要重新加载页面。问题是,我正在开发的网站必须能够播放许多不同的视频文件,而不仅仅是一个。只要我的网站选项卡在Firefox中打开,插件容器使用的内存就不会减少。关闭选项卡后,内存将被释放。但看完每个视频后,离开网站,重新进入,然后重新登录是非常不方便的。
这是脚本。它实际上是一个缩略图,在两秒钟(间隔)后显示视频的四个帧(重复)。
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
[Bindable]
public var source:String;
[Bindable]
public var repeat:int=4;
[Bindable]
public var interval:int=2;
private var timer:Timer;
import mx.events.VideoEvent;
private function init():void{
timer = new Timer(interval*1000,0);
timer.addEventListener(TimerEvent.TIMER, switchThumbnail);
}
private function startTimer():void {
vid.play();
vid.pause();
vid.playheadTime=vid.totalTime/repeat;
timer.start();
}
private function resetTimer():void {
vid.stop();
vid.close();
timer.reset();
}
private function switchThumbnail(event:TimerEvent):void{
vid.playheadTime=vid.playheadTime+vid.totalTime/repeat;
if(vid.playheadTime>=vid.totalTime){
vid.playheadTime=0;
}
}
]]>
</mx:Script>
<mx:Canvas>
<mx:VideoDisplay id="vid" source="{source}" autoPlay="false" rollOver="startTimer()" rollOut="resetTimer()" volume="0" maintainAspectRatio="false" width="{width}" height="{height}"/>
</mx:Canvas>
即使这个脚本也存在同样的问题:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
[Bindable]
public var source:String;
]]>
</mx:Script>
<mx:Canvas>
<mx:VideoDisplay id="vid" source="{source}" autoPlay="false" volume="0" maintainAspectRatio="false" width="{width}" height="{height}"/>
</mx:Canvas>