我正在flash/as3中构建一个叙事的点击亭应用程序。当前,我将加载到时间轴上的几个(10 )本地加载的.flv文件中。我正在经历加载延迟,并想知道这种情况的最佳实践/最佳情况。这些都使用"带有播放组件的外部视频"选项进行视频导入。
到目前为止,我已经尝试实现两种方法:
-
一帧,一个名为" 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秒。
-
这对我来说是非常规的,但是我在时间轴上使用了多个帧。每个帧在舞台上都有一个flvplayback实例,每个帧都在组件参数中的"源"属性中放置不同的相对路径(请参见http://www.ashleylovespizza.org/stuff/stuff/flv_example.png)。该代码基于帧标签在帧之间切换,然后击中播放(组件参数也关闭了)。
var new_flv_frame_name:String = "next_frame"; this.gotoAndStop(new_flv_frame_name); this.video_player.play();
问题再次是加载需要很长时间。什么可以防止这种行为?我在播放头上寻找()到不同时刻的一段时间吗?我可以在单独的flvplayback实例中预加载,类似于双重缓冲?
任何提示或最佳实践都将受到赞赏。
,尽管您没有告诉我FLV文件从哪里(本地或远程加载),并且正如您所说的那样,您正在构建售货亭样式应用程序,但我要出去在这里的肢体上,说您几乎可以肯定应该使用Adobe Air作为售货亭应用程序。
没有理由创建一个以上的FLVPlayback
实例,它能够使用getVideoPlayer(index)
播放多个视频,由您通过在它们上调用close()
来管理流。
如果要远程加载文件,则使用Adobe Air可以使用FileStream
类将每个视频下载到本地文件夹。这将加快播放这些文件的过程。