Flash Media Server 入门

Flash Media Server 入门
2009年12月20日
  什么是Flash Media Server ?
  Flash大家庭里的一员,这个东东以前叫Flash Communication Server,传说中的FCS就是这个,现在改叫FMS了...
  不见不知道哦,一见真可怕,adobe还有这么cool的东东,自从见了她,让我做些小东东的兴趣全没了,一心想研究这个
  这东东能做什么?
  视频录制,flash聊天室,在线视频会议,网络游戏
  先要打开服务器
  你在本机装的fms,本机就是服务器了哦!记得现在你的机器既是客户端又是服务端哦
  开始===程序===Macromedia===Flash Media Server 2
  有两个start****,都要打开,关时候两个都要关,如果你怕麻烦直接找tool文件夹里的批处理文件StartServerService.bat,双击他,他会帮你搞定地,想关就找StopServerService.bat。
  applications文件夹
  你可以在里边建一个文件夹例如叫 FirstApp,这就建了一个Application,以后所有此项目服务器端的flv文件啊,共享文件啊都会在这里边,有时服务器端需要写程序的时候里边会有个main.asc 文件,这个就是服务器端程序,服务器端程序目前只支持as1写,是在服务器上执行的,你也可以用trace调试,怎么trace管理服务器时候你会看到,你可能会建若干个app,在一台服务器上同时运行,比如录象的app,聊天室的app。。。这些所有的app都通过fms自带的fms2_console.swf管理。
  有一种协议叫rtmp
  客户端和服务器端通信是使用协议rtmp的,现在在服务器端applications文件夹(当然偶的客户端和服务器端是一台机器了)里建个test1文件夹,你的地址就为rtmp:/test1 或者 rtmp://localhost/test1,注意两个地址中的 "/ "符号
  打开flash
  与服务器通信首先要建个NetConnection()
  nc = new NetConnection(); 连接
  nc.connect("rtmp://localhost/test1");
  怎么知道连没连上呢?顺利连接服务器后会触发一个onStatus事件,自己trace一下info.code
  nc.onStatus = function(info) {
  //trace(info)
  //trace(info.code)
  for (i in info) {
  trace(i+": "+info);
  }
  };
  完整代码:
  nc = new NetConnection();
  nc.onStatus = function(info) {
  trace(info.code);
  if (info.code == "NetConnection.Connect.Success") {
  trace("接通");
  }
  };
  nc.connect("rtmp://localhost/test1");
  视频,流
  这个比较重要,但超简单,网上播放电影,在线录制,在线播放,视频会议,视频电话,全靠他了 ,下边我们先做一个最简单 录制和播放
  录制视频
  打开flash,新建一个fla,Ctrl + L 打开library,右键新建视频,确定。拉到舞台上起个名叫my_video
  第一帧开始加代码
  //从麦和设像头显示视频显示在my_video上
  my_video.attachVideo(Camera.get());
  my_video.attachAudio(Microphone.get());
  //像以前一样连接
  nc = new NetConnection();
  nc.connect("rtmp://localhost/aaaa"); //注意这里,Applications文件夹里要有aaaa文件夹哦!
  //可以理解为在nc连接上绑一个流
  nsOut = new NetStream(nc);
  //在流上加麦克风和视频头
  nsOut.attachVideo(Camera.get());
  nsOut.attachAudio(Microphone.get());
  //发布 2.flv
  nsOut.publish("2", "record");
  第一个参数是文件名,后一个参数要"record"才是录制
  把fla发布一下, 录一会儿,把视频关掉,打开你的
  叉盘:\Program Files\Macromedia\Flash Media Server 2\applications\aaaa\,是不是多了个streams\_definst_
  打开C:\Program Files\Macromedia\Flash Media Server 2\applications\aaaa\streams\_definst_
  看见2.flv了吧。
  播放flv ,用fms播放的flv目前是无法下载的,这可以保护你的版权,打开flash,新建一个fla ,Ctrl + L 打开library,右键新建视频,确定。 拉到舞台上,这回起个名叫view ,我们来播放你刚才录的那个视频
  nc = new NetConnection();
  nc.connect("rtmp://localhost/aaaa");
  res = new NetStream(nc);
  //view元件要加载res流
  view.attachVideo(res);
  view.attachAudio(res);
  //播放
  res.play("2");
  现场流
  上边做的都是先录制好了视频,然后才播放,网上的实时视频会议,视频电话是怎么做的呢?总不能先录好再播放吧?
  这要用到现场流,现场流是指你连接到服务器后,你在发布的同时,其他人就可以实时的看到你,把上边录制视频的例子拿下来
  nsOut.publish("2", "record"); 这句改成 nsOut.publish("2", "live");
  把"record" 改成"live"后,就不会生成flv了,取而代之的是一个看不到的实时的视频流
  ok 了,发布,这就是直播端了,同时再发布上边那个播放端,已经可以实时看见你了吧。现在你是用本机测试,等你有了服务器。其他人也能同时看见你了哦
  到这里你已经可以自己做一个网页上的直播了,发布端不要让别人看到,让别人看你的播放端就好了 :) 至于为什么要用两个swf,因为目前为止你还不知道怎么样跟服务器之间传递消息,这样做可以避免这些东西,等你把后边的东西全都学完就可以在一个swf里,写个视频会议之类的东东了
  远程共享
  共享的概念就是让每个连接到服务器的swf都能实时的得到服务器端共享的数据。
  一个人更改了这些数据,其他人都会看得到通知。可以想象聊天室里的发言,一个人发了以后其他人都可以看到。
  待续......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值