学无止境

-------至弱即为至强!

导航

flash与后台数据交换方法整理5-FlashCom(FMS)篇

Posted on 2007-07-18 18:22  赵国亮  阅读(627)  评论(0编辑  收藏  举报
FlashCom(FMS)

这一篇是前四个(LoadVars(XML)Flash RemotingWebserviceXMLSocket)的补充篇,本来我没有考虑进去,因为FlashCom(FMS)主要用于流媒体技术,今天要感谢Danger提出来了,呵呵,今天心情不错,就一气合成了!

FlashCom(FMS)主要用于与服务端进行流媒体通信,目前应用领域就是Flash流媒体播放Flash在线直播Flash视频音频聊天Flash视频会议Flash在线游戏等。

FlashCom的运行环境(FMS的运行环境):
1、Windows操作系统:Windows 2000 Server或者Windows NT 4.0 Server(sp6);
2、Linux操作系统:Red Hat Linux 7.3 或者 8.0;
3、服务器的CPU是Pentium III 500 MHz或者更高(推荐值是双个Pentium 4 CPU);
4、服务器的内存是256M RAM 或者更高(推荐值是512M)。

FlashCom(FMS)的优点
1、能够实现即时视频音频通信(当然它也支持文本通信的);
2、能够流媒体同步播放(也叫在线直播);
3、能够通过Flash Player(6.0以上版本)录制视频音频,无需其他客户端;
4、能够实现客户端实现之间的控制(如会议主持人权限)。

FlashCom(FMS)的缺点
1、FlashCom(FMS)服务端软件是MM公司的产品,需要花银子去买的(一笔不小的投入),好在现在有一个正在完善中的开源项目——RED5
2、由于是流媒体服务端软件,所以对服务器的带宽,内存,以及CPU也是很高的要求的(上面已经作说明了);
3、同时在线视频通信的人数不能太多。

//=======================================;
// Flash客户端(以简单的在线录制视频为例)
//=======================================;
stop();
var nc:NetConnection = new NetConnection();
var ns:NetStream;
var cam:Camera = Camera.get();
var mic:Microphone = Microphone.get();
//预览本地摄像头视频;
video_box.attachVideo(cam);
//初始化NetStream;
function initNetStream():Void {
ns = new NetStream(nc);
//设置2秒的缓冲时间;
ns.setBufferTime(2);
//使用NetStream加载视频和音频对象;
ns.attachVideo(cam);
ns.attachAudio(mic);
//NetStream状态信息;
ns.onStatus = function(info:Object) {
trace("ns.onStatus:"+info.code);
};
}
//录制视频音频;
function recordStream(){
ns.publish("kinglong","record");
}
//停止录制;
function stopStream(){
ns.close();
}
//删除视频音频文件;
function deleteStream(){
nc.call("clearStream",null,"kinglong");
}
//NetConnection状态信息;
nc.onStatus = function(info:Object) {
trace("nc.onStatus:"+info.code);
switch (info.code) {
case "NetConnection.Connect.Success" :
initNetStream();
break;
}
};
//连接FlashCom服务器
nc.connect("rtmp:/"+"recordstream");


//=======================================;
// FlashCom(FMS)服务端代码
//将下列代码存成main.asc文件(此文件名固定),在FlashCom的applications目录下建立一个recordstream目录(对应着客户端的”recodstream”),并将main.asc放在这个目录中。
//=======================================;
application.onAppStart = function(){
}
application.onAppStop = function(){
}
application.onConnect = function(client){
application.acceptConnection(client);
}
application.onDisconnect = function(client){
}
//=======================================;
//获取flv文件时间长度
function getStreamLength(name) {
return Stream.length(name);;
}
//=======================================;
//删除flv文件
function clearStream(name) {
trace("clearStream("+name+");");
var stream = Stream.get(name);
return stream.clear();
}
//=======================================;
//设置Client.prototype;
//=======================================;
Client.prototype.getStreamLength = getStreamLength;
Client.prototype.clearStream = clearStream;

补上FMS官方中文网站相关资料地址:http://www.macromedia.com/cn/software/flashmediaserver/productinfo/pricing/