`
nianshi
  • 浏览: 423446 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex FMS应用(上)

    博客分类:
  • Flex
阅读更多

久仰“fms”大名很久了,但是一直无瑕了解它。今日一个录音器项目点燃了学习学习它的导火索


一些FMS的基本概念

 

 

     Macromedia于2002年年末发布了令人惊异的FMS的前一个版本Flash Communication Server MX服务器(简称FCS)。后来该名为Flash Media Server(简称FMS),使用FMS你只需要配备Web摄像头和麦克风,并加上十几行ActionScript脚本便可以完成一个电视会议系统。

FMS给全世界的人带来一种全新的通讯方式。有了FMS服务器,您可以参加实时网络会议;使用FMS的功能在工作中进行协作以及通过Internet或企业Intranet共享信息。

还不只是这一点,Flash Player的强大功能使得实时通讯和应用程序的集成由梦想变为现实,这正是未来网络软件发展的趋势,这都是Flash Player惹的“火”。

Flash Media Server(简称FMS)服务器是用于用户之间相互通讯的新平台,它集成了Flash多媒体交互的特性,又添加了实时音频、实时视频和实时数据流等新特 色,使用该平台,你可以通过网络存储录制下来的音频、视频,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步 共享。该平台集成了通讯功能和应用程序功能,它通过Flash Player(Flash Player 6或更高)在客户端提供音频共享、视频共享和共享数据流,为用户带来了更为丰富的体验。

二、FMS的传输协议

FMS使用实时通讯协议(RTMP),RTMP 是一种未加密的TCP/IP协议,专门设计用来高速传送音频、视频和数据信息。

使 用FMS可以捕获(甚至录制)用户客户端的视频和音频流。信息通过FMS使用Real-Time Messaging Protocol (RTMP)协议被传递到客户端(用户计算机上的Flash Player)。当一个Flash影片应用程序要使用 FMS时,Flash Player就连接到服务器,这样就在客户端Flash Player和FMS之间提供了往复的源源不断的信息流,称为network stream(网络流)。其他的用户也可以同时连接到相同的FMS接收信息、更新数据以及音频和视频,这些都是“网络流”。

三、FMS的特色

FMS是一个完全基于软件环境的多媒体实时通讯环境,代表了当前实时通讯领域内的发展方向,并且,其自身也融合了大量的新特色,用于创建下一代通讯应用程序,这些新特色包括:
1、它提供了一个高效高性能的运行时,该“运行时”不但可以用于执行代码、处理数据内容,并且还可以进行通讯。
2、它将内容、通讯功能和应用程序界面集成进一个通用环境,这个通用环境就是Flash Player,通过强大且分布广泛的Flash Player,使得通过FMS进行通讯变得更加便利。
3、它为交互性提供了强大、高扩展性的对象模型。在为FMS开发Flash通讯应用程序的过程中,您就会慢慢认识到FMS无处不在的面向对象开发的特点。
4、它还建立了一个高效的组件架构模型,使用该组件架构模型可以创建高效的Flash通讯组件,而使用组件和其它的可重用模块,可以使你快速的开发基于FMS的通讯应用程序。
5、它还允许使用应用程序服务器提供的web服务和数据服务,从而可以和其它的应用服务器技术结合起来以创建功能更强大、更完整的富媒体应用程序。
6、它并且可以识别那些处于连接状态和处于未连接状态的客户端,以降低网络负载。
7、使用它,你可以将通讯应用程序客户端轻松的部署在多个平台和设备上,这多亏了Flash Player的广泛使用。

使 用FMS和Flash创作环境,你可以非常轻松迅速的创建即时通讯应用程序,它可以让两个或多个的用户实现即时交流(交流可以使用文字、音频和视频)。例 如,你可以使用FMS创建会议系统、在线社区、客户支持、销售支持、培训、远程展示或者即时消息系统。FMS是一个实时数据流平台,使用该平台加上客户端 Flash Player的支持,可以将实时的数据流通过网络传递到Internet、PDA、iTV或者其它的设备上。

FMS 的功能平台由两部分组成:服务器提供通讯方式;Flash影片应用程序(SWF文件)提供终端用户界面。你可以使用Flash创作工具作为开发环境创建 Flash影片应用程序,该影片应用程序使用FMS提供的服务(也就是位于FMS上的Flash通讯应用程序)。有时你也可以编写服务端脚本为通讯应用程 序添加新的功能,使用服务端脚本可以更灵活的控制共享状态信息,并且可以作为一个负载平衡器调节多用户之间的实时交互。


连接到FMS服务器(Flash/Flex两种实现)


通常做FMS都是和Flash或是Flex结合开发的,特别是在视频流这方面相当的突出,成功案例也不少,比如 http://www.tudou.com, www.ku6.com , http://www.15dv.com 等视频网站都与FMS挂钩。本人也是因为工作需要,趁工作之余来学习这门技术,想通过写博客的方式来巩固和分享学习,更希望爱好或是在从事这方面开发工作 的朋友多多指正,交流。OK,本文就以连接FMS服务器作为写作话题,来看看我们学习FMS应该从什么地方出发,逐步的走上更高的台阶。

      Adobe公司的产品Flash和Flex都可以结合FMS进行编程,本文示例比较简单,为了多凑几个字我打算通过Flash和Flex两种实现来介绍怎么来实现我们的第一个FMS程序“连接到FMS服务器”。

      上山砍柴不忘磨柴刀,那么我们做技术开发肯定也离不开对开发环境,开发工具,开发语言的选择和准备。本文中我们的工具就是Flash CS 4,Flex Builder 3和FMS 3.0,所使用的开发语言是ActionScript 3.0,这里我不想浪费时间去介绍软件的安装,相信看这篇文章的你对于安装软件不会存在有什么难度,OK,下面看看怎么编码实现。


一 、FMS应该做些什么

      本文中所使用到的FMS是非常简单的,主要就就是建立一个FMS应用,方法很简单。找到你安装FMS的目录你会发现里面有一个appliations的目 录。对的,它就是管理FMS应用的目录,进入该目录在里面建立一个文件夹就OK,我建立的文件夹为"firstFMS"。


二、 Flash连接到FMS服务器

      首先建立一个Flash文件(ActionScript 3.0)并将其保存在某个目录(自己决定吧)中。然后打开组件面板(可以按Ctrl+F7)从组件面板中拖拽一个button组件到刚建立好的Flash 的舞台(也就是Flash显示东西的那一块地方),然后通过属性面板(可以按Ctrl+F3)将刚拖拽出的button取个名字(Flash中叫他为实例 名,舞台中的每一个组件就是一相对应的对象的实例),我取的是 btnConnFMS

      完成上面两步后回到舞台,鼠标在舞台中空白位置点击一下,然后同样打开属性面板,你会发现现在的属性面板和先前的有些不一样,在发布选项下找到“类”,这里我填写的为“ ConnFMS ”,表示我将要通过 ConnFMS.as这个类文件来对当前的这个Flash进行编码。

      上面承诺了由 ConnFMS.as 来负责Flash的编码工作,那该怎么做呢?建立一个ActionScript类文件,保存在之前保存Flash文件的同一目录就OK,记住这个类文件一定是“ ConnFMS.as ”。下面是 ConnFMS.as 的完整代码:


As代码 复制代码
  1. package   
  2. {   
  3.        import flash.net.NetConnection;   
  4.        import flash.net.NetStream;   
  5.        import flash.display.MovieClip;   
  6.        import flash.net.Responder;   
  7.        import flash.events.MouseEvent;   
  8.        import flash.events.NetStatusEvent;   
  9.        import flash.events.AsyncErrorEvent;   
  10.   
  11.       public class ConnFMS extends MovieClip   
  12.       {   
  13.           private var nc:NetConnection;   
  14.           public function ConnFMS()   
  15.           {   
  16.               btnConnFMS.label= "连接到FMS" ;   
  17.           }   
  18.             
  19.           private function onClickHandler(evt:MouseEvent):void   
  20.           {   
  21.               trace( "正在连接FMS服务器" );   
  22.               nc = new NetConnection();   
  23.               nc.connect( "rtmp://localhost/firstFMS" );   
  24.               nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);   
  25.           }   
  26.             
  27.           private function onNetStatusHandler(evt:NetStatusEvent):void   
  28.           {   
  29.               switch (evt.info.code)   
  30.               {   
  31.                   case "NetConnection.Connect.Success" :   
  32.                       trace( "成功连接FMS服务器!" );   
  33.                       break;   
  34.                   case "NetConnection.Connect.Rejected" :   
  35.                       trace ( "访问FMS服务器权限不足,连接被拒绝!" );   
  36.                       break;   
  37.                   case "NetConnection.Connect.InvalidApp" :   
  38.                       trace( "指定的应用程序名称没有找到" );   
  39.                       break;   
  40.                   case "NetConnection.Connect.Failed" :   
  41.                       trace( "连接失败!" );   
  42.                       break;   
  43.                   case "NetConnection.Connect.AppShutDown" :   
  44.                       trace( "服务器端应用程序已经关闭(由于资源耗用过大等原因)或者服务器已经关闭!" );   
  45.                       break;   
  46.                   case "NetConnection.Connect.Closed" :   
  47.                       trace( "与FMS的连接中断!" );   
  48.                       break;   
  49.               }   
  50.           }   
  51.       }   
  52. }
分享到:
评论

相关推荐

    FMS.rar_flex_flex FMS_fms_site:www.pudn.com

    【标题】"FMS.rar_flex_flex FMS_fms_site:www.pudn.com" 涉及的核心技术是Adobe Flash Media Server (FMS),它是一个强大的实时流媒体服务器平台,用于发布音视频内容、实时通信以及互动应用程序。这里与Flex一起...

    fms.rar_flex_flex and fms_fms_fms rtmp_fms flex

    标题"Fms.rar_flex_flex and fms_fms_fms rtmp_fms flex"和描述中的关键词揭示了这个压缩包包含的是与Adobe Flex和Flash Media Server(FMS)相关的项目资源,主要用于创建一个实时通信应用,例如聊天室。Flex是一种...

    Flex FMS 发送和接收视频

    在实际操作中,首先需要在FMS上设置好环境,然后用Flex编写客户端应用,实现视频的捕获、编码和发送。在另一端,接收方的Flex应用将订阅视频流,解码并在界面上播放。整个过程中,网络条件、服务器性能和编码质量...

    flex+fms实现视频直播源码

    6. **部署与配置**:在实际使用前,你需要在本地或服务器上安装并配置FMS服务器,然后根据项目中的说明调整Flex应用中的服务器地址和直播频道设置。 7. **优化与扩展**:为了提高性能和用户体验,你可以考虑优化...

    fms.rar_flex_fms_流媒体

    3. **连接FMS**:在Flex应用中,使用NetConnection对象建立与FMS服务器的连接。通过调用`NetConnection.connect()`方法,指定FMS服务器的URL。 4. **发布流**:一旦连接成功,你可以创建一个NetStream对象,使用`...

    Flex和Fms3打造在线聊天室 源码和文档

    Flex和FMS3是构建实时互动应用程序的强大工具,尤其适合创建在线聊天室这样的实时通信平台。这个源码和文档集合提供了详细的步骤和技术说明,帮助开发者理解如何利用这些技术实现一个功能完备的聊天室。 Flex是一种...

    flex连接到FMS详解

    通过这种方式,Flex应用能够利用FMS实现高效、流畅的视频流传输和互动功能。在实际开发中,还需要了解并熟练掌握ActionScript以及FMS的相关API,以创建复杂的实时多媒体应用。同时,注意优化网络连接和处理性能问题...

    FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)

    FMS3特别适用于开发基于Flash和Flex的应用,因为这两个技术平台可以无缝集成FMS,创建出具有高质量音视频效果的实时通信应用。 **实时视频聊天的技术原理** 1. **RTMP协议**:RTMP是实时消息协议,用于在客户端(如...

    FMS 4.5 + Flex mobile 之 Hello World 工程源代码

    通过分析“HelloFms_Sample”文件,我们可以学习如何配置和运行一个基本的FMS服务器端ASC脚本,以及创建一个简单的Flex Mobile应用来与之交互。这将帮助初学者理解FMS与Flex Mobile之间的通信机制,为更复杂的多媒体...

    通过FMS实现时时视频聊天(Flash|Flex)源码

    【标题】中的“通过FMS实现时时视频聊天(Flash|Flex)源码”是指使用Adobe的Flash Media Server (FMS)技术,结合Flash和Flex这两种编程语言,开发出一款能够实现实时视频通信的应用程序。这个标题暗示了我们将在...

    FLEX视频摄像头录制上传到服务器及FMS服务器的安装与配置

    在本文中,我们将深入探讨如何使用FLEX技术实现视频摄像头录制,并将录制的视频上传到FMS(Flash Media Server)服务器。首先,我们先来理解一下FLEX是什么以及它的核心功能。 FLEX全称为Flex Framework,是Adobe...

    fms 中文 教程

    3.2 Flex SDK集成:Flex SDK是开发FMS应用的常用工具,它提供了图形化界面和组件库,简化了UI设计和程序开发。 3.3 RTMFP协议:FMS支持RTMFP(Real-Time Media Flow Protocol),允许用户间直接通信,降低服务器...

    FMS中文帮助文档

    FMS中文帮助文档是为开发者提供的一份详细指南,旨在帮助他们理解和利用Flex与FMS之间的交互,从而实现高效、流畅的多媒体应用。以下是这份文档可能涵盖的关键知识点: 1. **FMS基础概念**: - **流媒体技术**:...

    Fms3和Flex打造在线多人视频会议和视频聊天附原代码

    Flex是基于ActionScript 3的开放源码框架,用于构建富互联网应用程序(RIA),而FMS3则是一个强大的服务器平台,专门用于实时流媒体和交互式应用。 首先,让我们深入理解Flex。Flex提供了丰富的组件库,包括各种用户...

    fms开发工具

    开发FMS应用通常涉及到以下几个关键知识点: 1. **RTMP协议**:理解RTMP协议的工作原理是至关重要的,包括如何建立连接、数据传输流程以及如何处理播放和暂停请求。 2. **ActionScript**:FMS2主要与Flash Player...

    fms3视频教程.PDF

    - **FMS应用创建**:在FMS安装目录下的`applications`文件夹中创建新的文件夹即可建立一个FMS应用,例如创建名为`firstFMS`的文件夹。 - **开发工具选择**:本教程使用Adobe Flash CS4和Flex Builder 3进行开发,...

    FMS3开发文档

    - **客户端**:使用Adobe Flash或Flex开发的应用程序,运行于Flash Player、AIR或Flash Lite 3之上。客户端可以捕捉、播放音频和视频,并处理用户交互。 - **服务器端**:运行在服务器上的应用程序,负责管理客户端...

    FMS连接问题解决方案--完结版

    在开发使用Flex与FMS交互的应用时,可能会遇到这些常见问题。 1. **访问FMS连接失败(NetConnection.Connect.Failed)** 当遇到此错误时,可能是因为缺少必要的文件或配置不正确。解决方法是检查FMS安装目录下的`...

    免费多人视频会议功能加强版本(Fms3和Flex开发(附源码))

    标题中的“免费多人视频会议功能加强版本(Fms3和Flex开发(附源码))”指的是一个基于Fms3(Flash Media Server 3)和Flex技术开发的多人视频会议系统,该系统不仅提供基本的视频交流功能,还进行了性能优化和功能增强...

Global site tag (gtag.js) - Google Analytics