1

我正在 Flash/AS3 中构建一个叙述性点击信息亭应用程序。目前,有几个 (10+) 本地加载的 .flv 文件,我正在将它们加载到时间轴上的 FLVPlayback 组件中。我遇到了加载延迟,想知道这种情况下的最佳实践/最佳案例方案是什么。这些都使用“加载带有播放组件的外部视频”选项进行视频导入。

到目前为止,我已经尝试以两种方式实现它:

  1. 在名为“video_player”的舞台上播放一帧,一帧FLVPlayback,并在点击/用户操作切换视频时,我执行以下操作:

    var new_flv:String = "next_flv.flv";
    
    video_player.stop();
    
    video_player.source("_flvs/"+new_flv);
    
    video_player.seek(0);
    
    video_player.play();
    

    这导致延迟从几秒到 10 秒不等。

  2. 这对我来说是非常规的,但我在时间线上使用了多个帧。每个帧在舞台上都有一个 FLVPlayback 实例,每个实例在组件参数的“源”属性中都有不同的相对路径(参见http://www.ashleylovespizza.org/stuff/flv_example.png)。代码基于帧标签在帧之间切换,然后点击播放(在组件参数中也关闭了自动播放)。

    var new_flv_frame_name:String = "next_frame";
    
    this.gotoAndStop(new_flv_frame_name);
    
    this.video_player.play();
    

问题再次是加载需要很长时间。什么可以阻止这种行为?我在播放头上寻找()不同时刻的一个长 flv?我可以在单独的 FLVPlayback 实例中预加载,类似于双缓冲吗?

任何提示或最佳实践表示赞赏。

4

1 回答 1

0

尽管您没有告诉我从哪里(本地或远程)加载 flv 文件,并且正如您所说您正在构建一个信息亭风格的应用程序,但我将在这里冒险并说您几乎可以肯定将 Adob​​e AIR 用于信息亭应用程序。

没有理由创建多个FLVPlayback实例,它能够使用 播放多个视频getVideoPlayer(index),您可以通过调用close()它们来管理流。

如果您要远程加载文件,那么使用 Adob​​e AIR,您可以使用FileStream该类将每个视频下载到本地文件夹。这将加快播放这些文件的过程。

于 2012-10-20T19:15:31.853 回答