2008-12-18 79 views
3

我正在做一个项目,我们会连续播放多个视频,如果我们通过提供流url来以正常方式加载它们,则每次启动下一个视频时都会出现加载延迟。在Flash中预加载多个视频?在Flex中?

我已经通过Adobe的文档查看了Flash和Flex,并且找不到预加载视频的方法。在这个应用程序中嵌入它们是不可行的。理想情况下,我们会预先加载它们,同时显示进度条或其他短视频,并且只有在加载完所有视频后才开始播放视频。

我不习惯问别人编程的问题,我RTFM,但我发现Adobe文档缺乏,并且使用Google搜索flash/flex问题很困难。有很多需要筛选,我找不到相关技术/解决方案。

至于Flex/Flash我对这两种解决方案感兴趣,或者两者都有。也许它是一样的,因为它是动作?

回答

3

这应该是非常简单的。对于直接闪光,请使用fl.video。 VideoPlayer或fl.video。 FLVPlayback。创建多个播放器,每个视频一个,每个播放器上都会调用load(),并将url传送到您的源视频。然后侦听VideoProgressEvent.PROGRESS事件以查明视频何时加载。最后,您可以将视频连续添加到可视组件并调用play()来播放它们。

实施例的代码(未测试):

var video1:VideoPlayer = new VideoPlayer(); 
video1.load("http://example.com/video1.flv"); 
video.addEventListener(VideoProgressEvent.PROGRESS, 
         function(e:VideoProgressEvent):void 
         { 
         if (e.bytesLoaded == e.bytesTotal) 
         { 
          trace("video1 loaded."); 
          parent.addChild(video1); 
          video1.play(); 
         } 
         } 
var video2:VideoPlayer = new VideoPlayer(); 
video2.load("http://example.com/video1.flv"); 
video.addEventListener(VideoProgressEvent.PROGRESS, 
         function(e:VideoProgressEvent):void 
         { 
         if (e.bytesLoaded == e.bytesTotal) 
         { 
          trace("video2 loaded."); 
         } 
         } 
3

您可以尝试查看bulk-loader项目,看看它可能对此有用。

在头版的摘录:

“BulkLoader是写在ActionScript 3(AS3)是 旨在使装载和管理 复杂的装载要求更容易 和最小库更快BulkLoader需要更 动态,建筑较少重 的形式给出了[原文],很少进口,使重 使用AS3的动态功能, BulkLoader有一个班轮觉得 不会让你的方式。”