AS3版本的FMS Streaming FLV的方法与前一篇的Progressive的方法基本一致,我们只需要把前一篇中的代码的某些部分做改动即可。注意看区别就在nc.connect的参数部分,下面是代码:
package?{
??import?flash.display.Sprite;
??import?flash.net.NetConnection;
??import?flash.net.NetStream;
??import?flash.media.Video;
??import?flash.display.MovieClip;
??public?class?StreamingFlvplayer?extends?Sprite?{
????public?function?StreamingFlvplayer()?{
??????//创建NetConnection对象,并在nc.connect参数部分传递rtmp路径
??????var?myNc:NetConnection=new?NetConnection();
??????myNc.connect("rtmp://localhost/StreamingFlvplayer/_definst_");
??????//使用onMetaData函数,Flash用来寻找这个方法
??????var?metaObject:Object=new?Object();
??????metaObject.onMetaData=onMetaData;
??????//构造NetStream对象并且连接创建的myNc对象
??????var?myNs:NetStream=new?NetStream(myNc);
??????myNs.play("keiko.flv");
??????//发送所有onMetaData调用到NetStream上
??????myNs.client=metaObject;
??????//创建video尺寸
??????var?video:Video=new?Video(160,120);
??????//加载Video到NetStream上去,添加到display列表
??????video.attachNetStream(myNs);
??????addChild(video);
????}
????private?function?onMetaData(data:Object):void?{
??????//发送Flash需要的Metadata数据
????}
??}
}
虽然代码只有一处变动,但是flv文件的放置则有了变化,FMS安装完后,flv文件放在FMS安装的Applications文件夹下的_definst_/streams目录下,这个目录的文件是通过http不可以访问下载的。受保护的flv切忌不要放在web server的文件夹下。
这两篇文件主要简单介绍如何用AS3方式构造Flv播放,很多开发者习惯AS2(我3年前习惯的方式),而AS3还不太熟悉,就算是一点小帮助吧。
最后用一张表总结一下Embed video in SWF,Progressive和Streaming的比较:

本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1974.html