当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS3教程:按顺序播放多个FLV视频

ActionScript
Flash as常用后缀及意义
AS3教程:Point类计算两点间距离
flash as3利用ContextMenu实现右键响应
Flash AS3教程:Motion类
Flash AS教程:文本类对象知识总结
Flash AS3教程:Random类
Flash AS3教程:Level2D类
Flash AS3教程:ApplySocket类
Flash AS3教程:运算符“?:”
Flash AS3教程:Direction类和Dot类
Flash AS3教程:小游戏开发实战尝试
Flash cs3、Flex与asp、php通信总结(包含数据库)
从基础开始深入学Flash AS3教程(7)(译文)
Flash as3教程:OutDisplay类
从基础开始深入学Flash AS3教程(6)(译文)
Flash简单AS代码实现绚丽曲线视觉特效
用纯Flash Actionscript做的火柴棍小人跑的动画
Flash AS解决中文mp3乱码
Flash加载外部文件创建进度条3种方法
AS的LoaderInfo类控制SWF的大小和播放帧频

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 373 ::
收藏到网摘: n/a

有时候,需要按顺序播放多个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播放无缝衔接。