flash中NetConnection与NetStream知识整理

来源:互联网 发布:淘宝一年消费1万5 编辑:程序博客网 时间:2024/04/29 18:18

NetConnection只有一个connect方法,NetStream就完整多了,

方法如下:
   close() 关闭
   pause() 暂停
   play()      播放
   seek(n)     移动到n秒数值;
   setBufferTime(n) 设置n秒的缓冲区;


下面的是属性了:   
   bufferLength  目前在缓冲区的秒数数值;
   bufferTime   由setBufferTime设置的秒数数值;
currentFps   目前在串流资料中的每秒影格数;
   time      以秒为单位,当前已经播放过的时间;


事件处理函数:
   onStatus    返回串流的状态;
   onMetaData   返回串流的总时间;


例:
  在库中创建一个视频元件,取名为my_video;拖到场景中放好位置,在帧上输入如下代码:


var connection_nc:NetConnection = new NetConnection();//建立一个链接对象,


connection_nc.connect(null);//开始链接。


var stream_ns:NetStream = new NetStream(connection_nc);//建立一个视频对象,并和链接对象关联。


my_video.attachVideo(stream_ns);//场景中的新建视频实例加载视频。


stream_ns.setBufferTime(5);//设定N秒钟的时间缓冲区;


stream_ns.play("video_1.flv");//视频开始播放。


TotalTime();


stream_ns.onStatus = function(infoObject:Object) {//视频的事件反馈函数。


for (var prop in infoObject) {//获取事件内容infoObject[prop];


trace(infoObject[prop]);//跟踪一下stream_ms状态


var test:String = infoObject[prop];


if (test == "NetStream.Play.Stop") { //假如事件内容是flv播放完毕,则开始播放下一个或者重新播放,这就看自己的要求了。
trace("播放完毕,马上开始播放下一个");
stream_ns.play("video_2.flv");
TotalTime();
}
}
};
function TotalTime() {//duration获取影片的长度,flashmx2004下没有onMetaData,所以需要自己给它定义一个;flash8就不存在这样的问题,可以直接使用,也可以用2004的代码
stream_ns["onMetaData"] = function (metadata) {
Time_txt.text = "TotalTime: "+metadata.duration;
};
}