AS3教程:按顺序播放多个FLV视频

作者:网络 来源:佚名 更新时间:2009-09-22 11:13:56 点击:
有时候,需要按顺序播放多个flv视频段落,一个接着一个播放,在一个flv文件播放结束时,等待播放另一个flv文件,此时如果处理不好就会停顿,以下以flash cs3(as 3.0)说明一下。

    假设舞台上有一个id是flvp的flvplayback对象,第一段代码:
    import fl.video.metadataevent;
    import fl.video.videoevent;

    this.flvp.skin="key/skinunderplaystopseekmutevol.swf";
    this.flvp.volume=0.2;
    flvp.width=320;
    flvp.height=256;
    flvp.x=132.3;
    flvp.y=56;

    现在需要播放视频第一段视频,代码:
    this.flvp.load("[url=file:///d|/my]file:///d|/my[/url] documents/echo/尼克·波利泰尼网球教程/1-致命正手/1.1-致命正手.flv");

    第一段视频结束后播放第二段视频,代码:
   flvp.addeventlistener(fl.video.videoevent.complete,flvpcomplete);
   function flvpcomplete(eveobj:fl.video.videoevent):void {
        this.flvp.load("[url=file:///d|/my]file:///d|/my[/url] documents/echo/尼克·波利泰尼网球教程/1-致命正手/1.2-致命正手.flv");
        this.flvp.play();



测试以上代码,发现两段视频撤换时有较长停顿,于是,想想可不可以在快播放完成前load第二段flv视频,就好像电影院放电影一样,当一台机播放,另一台机准备,快播放完时准备的机已经启动了,flvplayback类提供了两个属性activevideoplayerindex和visiblevideoplayerindex
activevideoplayerindex处理load方法,visiblevideoplayerindex处理play方法,修改代码,看看结果:
import fl.video.metadataevent;
import fl.video.videoevent;
this.flvp.skin="key/skinunderplaystopseekmutevol.swf";
this.flvp.volume=0.2;
flvp.width=320;
flvp.height=256;
flvp.x=132.3;
flvp.y=56;

this.flvp.load("[url=file:///d|/my]file:///d|/my[/url] documents/echo/尼克·波利泰尼网球教程/1-致命正手/1.1-致命正手.flv");
flvp.addeventlistener(fl.video.videoevent.complete,flvpcomplete);
flvp.addeventlistener(fl.video.metadataevent.cue_point,flvpvuepoint);
//增加as提示点,利用提示点事件触发load第二段flv视频
var cuept:object = new object();
cuept.time = 400;
cuept.name = "elapsed_time";
cuept.type = "actionscript";
flvp.addascuepoint(cuept);
function flvpcomplete(eveobj:fl.video.videoevent):void {
this.flvp.activevideoplayerindex=1;
this.flvp.visiblevideoplayerindex=1;
flvp.play();
this.flvp.volume=0.21;
}
function flvpvuepoint(eveobj:fl.video.metadataevent):void {
trace(eveobj.info.name);
this.flvp.activevideoplayerindex=1;
this.flvp.source="[url=file:///d|/my]file:///d|/my[/url] documents/echo/尼克·波利泰尼网球教程/1-致命正手/1.2-致命正手.flv";
this.flvp.activevideoplayerindex=0;
}

利用属性activevideoplayerindex和visiblevideoplayerindex指定多个flv播放器,就可实现flv播放无缝衔接。