FLEX+FMS实现远程共享、电子白板、远程交流会议的功能
2012-06-21 16:08
344 查看
*******************************************************************************
【原创文章,版本归AVSuper所有,转载请注明,谢谢】
*******************************************************************************
FMS提供了“远程共享对象”的功能,可以让多个Client端的flash应用共享同一个全局对象,并且当客户端中的任何一个改变该对象时,系统会自动将该对象回发到FMS服务器,同时FMS服务器也会将该对象重新广播到所有客户端。
可能有些人还是不理解这个含义,举个例子来说,视频会议软件里面通常有个共享电子白板(WhiteBoard)的功能,就是A在画板上所画的线,B在他的电脑上面也可以看到。传统的实现方法,是A画图的操作通过网络传送给B,双方各自调用画图的代码。程序实现还是相对比较复杂。
描述得更简单一些,就是说,如果在三个电脑上不同的人浏览同一个页面,那么任何一个人在这个flash上面所做的操作,将在另外两个人的电脑上同步展现。这个的用途很广泛了,像视频会议(主席调用PPT、画面,参会者都能同步看到)、电子教室(老师做演示,学生机同步刷新)、互动游戏(多个不同的角色可以操作同一个对象),等等。
通过FLEX+FMS,利用FMS的远程共享对象,这个功能实现起来相当简单。
首先,在FMS的Application文件夹下,创建一个SharedObjectApp的文件夹,把live文件夹下面的那些默认文件复制过来,注意!这里必须要修改一个文件才行,默认的配置是未启用远程共享的!!很多人都是折腾半天发现不能共享,不是代码的问题,是这里设置的问题。至于如何设置,这里就不说了,卖个关子,呵呵。。。。。
然后,在FLEX代码中,创建连接:
完整的代码很多地方都能找到,就不贴了,有需要的找我吧。解释一下,每个客户端需要调用类似下面的代码来通知服务器更新数据:
shareObject.setProperty("msg", msgText.text);
shareObject.data.msg这里的msg就是所更新的属性,你可以根据自己的需要随便定义,setProperty的第二个参数是msg对应的数据。
在共享画图的时候,我们在鼠标按下时开始在本地画面、鼠标移动时继续画并记录坐标数据,鼠标抬起时本地画图完成,同时调用setProperty将线条粗细、颜色、透明度等信息以及所有坐标数据传递给服务器,在上面的updateAllClientMsg里面根据这些数据画图,就可以更新到所有客户端,实现共享画图了。
我对FLEX也是刚学,每天太忙也没时间去仔细研究,只以这几天了解的来看,FLEX+FMS的功能真的很强大,
以前抓耳挠腮要写很多代码实现的功能,现在都轻而易举实现,
而且,而且,而且。。。支持BS,跨平台,不用安装插件。。。
对于那些希望快速形成自己的流媒体应用软件的人来说,真应该好好研究研究一下啊!
【原创文章,版本归AVSuper所有,转载请注明,谢谢】
*******************************************************************************
FMS提供了“远程共享对象”的功能,可以让多个Client端的flash应用共享同一个全局对象,并且当客户端中的任何一个改变该对象时,系统会自动将该对象回发到FMS服务器,同时FMS服务器也会将该对象重新广播到所有客户端。
可能有些人还是不理解这个含义,举个例子来说,视频会议软件里面通常有个共享电子白板(WhiteBoard)的功能,就是A在画板上所画的线,B在他的电脑上面也可以看到。传统的实现方法,是A画图的操作通过网络传送给B,双方各自调用画图的代码。程序实现还是相对比较复杂。
描述得更简单一些,就是说,如果在三个电脑上不同的人浏览同一个页面,那么任何一个人在这个flash上面所做的操作,将在另外两个人的电脑上同步展现。这个的用途很广泛了,像视频会议(主席调用PPT、画面,参会者都能同步看到)、电子教室(老师做演示,学生机同步刷新)、互动游戏(多个不同的角色可以操作同一个对象),等等。
通过FLEX+FMS,利用FMS的远程共享对象,这个功能实现起来相当简单。
首先,在FMS的Application文件夹下,创建一个SharedObjectApp的文件夹,把live文件夹下面的那些默认文件复制过来,注意!这里必须要修改一个文件才行,默认的配置是未启用远程共享的!!很多人都是折腾半天发现不能共享,不是代码的问题,是这里设置的问题。至于如何设置,这里就不说了,卖个关子,呵呵。。。。。
然后,在FLEX代码中,创建连接:
private function InitApp():void { nc=new NetConnection; nc.connect("rtmp://192.168.0.100/SharedObjectApp"); nc.addEventListener(NetStatusEvent.NET_STATUS,operateShareObject); } private function operateShareObject(evt:NetStatusEvent):void { isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success"); if(isConnectSuccess) { shareObject=SharedObject.getRemote("ShareTest", nc.uri, false); shareObject.connect(nc); shareObject.addEventListener(SyncEvent.SYNC,detectSO); } } private function detectSO(e:SyncEvent):void { for(var chng:uint;chng<e.changeList.length;chng++) { switch(e.changeList[chng].code) { case "change": updateAllClientMsg(); break; default: break; } } } private function updateAllClientMsg():void { memo1.text+=shareObject.data.msg+"\n"; //这是文字信息的共享 }
完整的代码很多地方都能找到,就不贴了,有需要的找我吧。解释一下,每个客户端需要调用类似下面的代码来通知服务器更新数据:
shareObject.setProperty("msg", msgText.text);
shareObject.data.msg这里的msg就是所更新的属性,你可以根据自己的需要随便定义,setProperty的第二个参数是msg对应的数据。
在共享画图的时候,我们在鼠标按下时开始在本地画面、鼠标移动时继续画并记录坐标数据,鼠标抬起时本地画图完成,同时调用setProperty将线条粗细、颜色、透明度等信息以及所有坐标数据传递给服务器,在上面的updateAllClientMsg里面根据这些数据画图,就可以更新到所有客户端,实现共享画图了。
我对FLEX也是刚学,每天太忙也没时间去仔细研究,只以这几天了解的来看,FLEX+FMS的功能真的很强大,
以前抓耳挠腮要写很多代码实现的功能,现在都轻而易举实现,
而且,而且,而且。。。支持BS,跨平台,不用安装插件。。。
对于那些希望快速形成自己的流媒体应用软件的人来说,真应该好好研究研究一下啊!
相关文章推荐
- 视频教程+源代码:FLEX+FMS实现远程共享、电子白板、远程交流会议
- 使用stratus +flex+fms远程共享对象实现随机视频聊天
- 关于FMS做双向视音频传输服务以及实现电子白板功能的例子
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- OMCS Demo -- 视频、音频、电子白板、远程桌面 功能基本展现(附源码)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 在线教学系统:C#实现网络电子白板、课件功能
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 我想了解下 java视频会议远程文档共享 实现的机制 谁能帮我解释下
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 我想了解下 java视频会议远程文档共享 实现的机制 谁能帮我解释下
- OMCS Demo -- 视频、音频、电子白板、远程桌面 功能基本展现(附源码)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash) 推荐
- 我想了解下 java视频会议远程文档共享 实现的机制 谁能帮我解释下
- OMCS Demo -- 视频、音频、电子白板、远程桌面 功能基本展现(附源码)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 基于Netty网络通信框架的电子白板,可实现同屏互动功能
- jplogic 开发案例(FMS流媒体服务集成) 之 视频会议管理 (多人互动呼叫-应答模式视频会议含共享白板)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)