我正在Flash / AS3中构建一个叙述点击式自助服务终端应用。目前,有几个(10+)本地加载的.flv文件,我正在加载到时间轴上的FLVPlayback组件中。我遇到了加载延迟,我想知道这个案例的最佳实践/最佳案例场景。这些都使用视频导入的“加载外部视频和播放组件”选项。
到目前为止,我尝试过两种方式实现它:
在名为“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实例,每个实例都有一个不同的相对路径放在组件参数的'source'属性中(参见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实例中预加载,类似于双缓冲吗?
感谢任何提示或最佳做法。
答案 0 :(得分:0)
虽然你还没有告诉我flv文件从哪里加载(本地或远程),并且正如你所说的那样你正在建立一个自助服务终端风格的应用程序,但我会在这里说出来并说你几乎可以肯定使用Adobe AIR作为自助服务终端应用。
没有理由创建多个FLVPlayback
实例,它能够使用getVideoPlayer(index)
播放多个视频,您可以通过调用close()
来管理流。
如果要远程加载文件,则使用Adobe AIR可以使用FileStream
类将每个视频下载到本地文件夹。这将加快播放这些文件的过程。