| 
 | 
 
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客户端 
//=======================================; 
// 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(FMS)服务端代码 
//连接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; 
复制代码 
 
 |   
 
 
 
 |