关闭

Flash Communication Server笔记二

1644人阅读 评论(0) 收藏 举报
连接到服务器

 

   要连接到FCS的一个实例,需要在客户端脚本使用Net NetConnection和NetConnection.connect命令发送请求到服务器。
     小技巧:还可以使用组件连接到服务器。

    启动服务

     如果服务器没有启动,必须手动启动它,在Windows开始菜单选择程序>Macromedia Flash Communication Server MX>Start Service。在Windows.
       如果希望查看服务是否运行,打开任务管理器,确定flashCom.exe和FlashComAdmin.exe是否在进程列表中。
     在unix中,打开shell窗口,更改目录到FCS的安装目录,作为一个root user,输入fcsmgr server start。
 
     打开一个到服务器的连接

     在flash中打开一个新文件,增加增加客户端脚本命令连接到服务器。
 
     1、    在flash电影中,开启一个连接:
     my_nc=new NetConnection();
     2、    下面这个命令连接到服务器。
     My_nc.connect(targetURI);
     上面是NetConnection.connect的基本用法。targetURI是一个位于FCS上的应用程序的URI,格式如下:
     rtmp://localhost[:port]/apName[/instanceName]
     localhost标识这个服务器运行在本地计算机上。
     rtmp://host[:port]/appName[/instanceName]
     注意,必须指定rtmp协议,如果没有指定,flashPlayer会使用http协议连接到服务器,导致连接失败。
     下面的代码展示了如何连接到应用服务器。
     My_nc:NetConnection=new NetConnection();
       My_nc.connect(“rtmp://myServer.myDomain.com/appName/appInstance”);
       my_nc = new NetConnection();    
       my_nc.connect("rtmp://myServer.myDomain.com/appName/appInstance");
 
        FCS应用程序常常需要去发布(广播)和回放一个流(文件)。安装FCS后包含一个FLA示例:/doc_connect/doc_connect.fla,样式了怎样在两个客户之间传送视频流。查看这个示例,可以知道怎样连接到fcs,以及怎样开发基于流的应用程序。
     Doc_connect文件显示了怎样初始化电影,连接到服务器,发布并且播放流。他也说明了怎样保存你的示例文件。
     在../help_collateral/doc_connect目录中可以打开doc_connect.fla文件。
 

     查看效果:
     1、    在服务器上创建一个名为doc_connect的应用程序。
     2、    在../help_collateral/doc_connect目录中打开doc_connect.swf文件。
     然后就可以看到两个视/音频播放窗口,一个是从camera中获得的实况流媒体,一个则是服务器发布的回放的流媒体。
     这个例子使用了FlashMX的fcsComponent,如果FlashMX中没有安装这些组件,可以采用这样的办法:
     1、在Flash中选择文件>新建,创建一个新文件.
     2、在库面板中创建一个视频对象(点击库面板的选项菜单,选择New Video)。
     3、 拖动该对象到舞台,创建两个该对象的实例,分别命名为live_video和Published_video,将Published_video的大小改为200*150;
     4、在fcs上创建名为doc_connect的目录,建立doc_connect的fcs应用程序。保存FLA文件doc_connect.fla在该目录中。
     5、选择时间轴的第一帧,打开动作面板(窗口>动作)。
     注意:确定动作在第一帧加载,而不是加载在舞台上的某个对象上。
     6、获得默认的camera(摄像头),并将它加载到live_video这个video对象上。
     Client_cam=Camera.get();
     Live_video.attachVideo(client_cam);

     创建一个连接到FCS的函数,使用trace显示是否连接成功,并且打开doc_connect应用程序中一个名为room_1的实例。记住,你必须指定real-time messaging protocol(实时信息协议,rtmp).
    function doConnect() {

    client_nc = new netConnection();
    client_nc.onStatus = function(info) {
        trace("Level: " + info.level + "   Code: " +  info.code);
    }
    client_nc.connect("rtmp://localhost/doc_connect/room_01");
    
}
      注意,如果你的swf和fcs运行在同一台计算机上,可以使用rtmp://localhost/doc_connect/test的缩写rtmp:/doc_connect/test建立连接。这样,你就可以移动这个文件到不同的服务器上而不需要改变你的代码。但是如果你的FlashMX和FCS不再同一台机器上,就必须指明服务器URL.
     为video创建名为out_ns的网络流,加载camera到这个流,并且发布这个流为myTestStream,这些步骤都在函数publishMe中完成
    function publishMe() {
    
    out_ns = new netStream(_root.client_nc);
    out_ns.attachVideo(client_cam);
    out_ns.publish("myTestStream");
    
}
     注意:out_ns.publish(“myTestStream”)省略了一个参数:howToPublish。如果不为该参数赋值,服务器将自动发布该stream为live(“实况转播”,而不讲这个stream记录在服务器上后在发布)
     在函数playMe中创建一个流in_ns,连接到client_nc这个Netconnect,让Published_video对象加载stream,播放流in_ns。
    function playMe() {
    
    in_ns = new netStream(_root.client_nc);
    Published_video.attachVideo(in_ns);
    in_ns.play("myTestStream");

}
     6     撰写下列命令调用刚才创建的函数。
    // 连接到服务器
     doConnect();

     // 发布live stream
     publishMe();

     //回放服务器发布的stream
     playMe();
     7     Save the file.
     保存该文件。
 
     测试这个例子
     1     Choose File > Publish Settings, select Flash and HTML, click Publish, and then click OK.
     1、选择文件>发布设置,选择flash和html,点击发布,然后点击OK
     2     Choose Control > Test movie.
     选择控制>测试电影
     你将看到两个视频窗口显示在舞台上,而且显示同样的影像。呵呵。
     3 、要想在浏览器中查看,选择文件>发布预览>默认,或者按ctrl+f12键


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1050856次
    • 积分:13809
    • 等级:
    • 排名:第947名
    • 原创:305篇
    • 转载:28篇
    • 译文:0篇
    • 评论:592条
    最新评论
    [╄ 冷枫]简介