将视频加载到内存

时间:2011-11-10 10:22:45

标签: flash actionscript-3

我有3-4个3秒的flv文件,我需要多次播放它们。 我不想导入flv,我不能每次动态加载它们。 我可以在我的swf ONCE开头加载它们并随时播放它我想要吗? 感谢

2 个答案:

答案 0 :(得分:0)

Flash播放器将在加载FLV文件后对其进行缓存,如果媒体的URL与之前加载的文件相同,则除非清除Flash播放器的缓存,否则不会再次下载它们。

以下是预加载的示例:

private var preloadQueue:Array = 
  ['http://path/to/firstmovie.flv',
   'http://path/to/secondmovie.flv'];

private function startPreload() {
   loadNextItem();
   function loadNextItem() {
     if (preloadQueue.length == 0) {
        preloadingFinished();
     }
     var movie:URLLoader = new URLLoader(new URLRequest(preloadQueue.pop()));
     cacher.addEventListener(ProgressEvent.PROGRESS, function (e:ProgressEvent) {
       //you can show the percentage of the current movie being loaded
     });
     //ideally you'd want to catch IOErrorEvent.IO_ERROR as well for any 404's
     cacher.addEventListener(Event.COMPLETE, function (e:Event) {
        loadNextItem();
     });
   }
}
startPreload();
function preloadingFinished() {
   MyFlvplayer.play('http://path/to/firstmovie.flv'); //movie will play instantly
}

答案 1 :(得分:0)

视频已加载到内存中。就像内存中保存的任何其他项目(例如图像,swf,对象,数组等等)一样,如果它不再具有指向数据的指针,则数据将被垃圾收集。

在您的情况下,如果您已经加载了一次视频(无论是动态还是在编译时嵌入),那就是您所需要的。只需隐藏它直到你再次需要它,然后将它的播放头重置回到开头。

video.alpha = 1;
video.seek(0)