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