由本人之前有做过类似多客户端视频语音回话项目,视频语音应用模式是呼叫--应答模式,也很多网友问我类似视频语音的功能如何实现!现在本人特此写这个博客与大家分享这其中的项目经验!当然也可以进入群【376447127】与我交流。
现在开源的视频会议项目也有不少,如OpenMeetings、BigBlueButton等,大家可以去学习学习!像这些开源视频会议的项目必不可少需要选择一个合适的流媒体服务器。目前比较流行的流媒体服务器有RED5、FMS,个人比较喜欢FMS!RED5是开源的,而FMS是收费的!在真实的应用环境下,选择一款合适的流媒体服务器至关重要!RED5和FMS二者各方面比较而言,FMS的各方面性能要优于RED5,毕竟是收费的!但是如果你的应用是使用java开源的话,RED5会提供一些开发流媒体应用API,方便你流媒体应用的编码!当然你也可以让RED5服务和你的WEB应用服务器合二为一,也就是将RED5集成到你的WEB项目中,但真实应用场景下一般都是将流媒体服务和应用服务二者分开,达到负载分担作用!大家可以根据自己项目中的需要选择合适方案即可!
下面就由我跟大家介绍一下本人在jplogic上做的视频会议管理功能实现,这些功能虽然看起来小,但是这些功能可以和很多业务结合在一起!视频会议应用功能的应用场景也很广泛,比如现在远程诊疗、远程视频会议、远程视频面试等场景,也是很多企业寻求的突破,像这些业务实现以不仅仅在于将程序功能实现就行的,即使视频会议等功能实现了,也会因为其他的原因造成系统无法上线!比如,视频语音数据在网路传输效率、带宽问题都需要考虑,这方面带来的硬件成本也是相当大的!那么我们也可以尽量在程序上做一些参数调整,视频传输更流畅、或者更清晰等,比如流媒体H.265编码设置等
言归正传,下面开始介绍jplogic上实现视频会议相关功能,首先,我们需要建立几张和视频会议相关的基础表,最为流媒体信息的存储。下面给出几张系统截图,大家就明白这其中设计。
创建房间:
在进行视频语音会话的时候首先需要记录视频通话的内容信息,这个可以看成是一个视频会议的房间,设置该房间的一些属性等等,当然这些都可以根据项目具体情况做调整即可,同时可以关联到其他的业务数据,达到既定的业务需求!在这里就不多说了。
本人在案例中视频语音通讯模式是呼叫--应答模式,也可以叫请求--相应模式。也就是呼叫方发送视频语音对话的请求,应答方需要在既定的时间内响应视频语音的请求,否则需要重新请求呼叫。这种交互模式在很多项目都会应用得上,大家可以借鉴一下。
呼叫方进入视频会话房间,选择参与者呼叫列表,请求与某某人进行视频通话,系统会自动发送一个消息给被呼叫对象,应答对象需要在既定的时间内响应呼叫,否则重新呼叫,如下图:
呼叫方视频呼叫:
当既定时间(30秒)内响应请求,则出现如下呼叫应答双方的视频会话通道(由于本人在时同一台笔记本上做的测试,会出现摄像头等设备占用的请求,所以在两个页面中会出现黑屏影像,其实这就相当于模拟通话双方的请,当然也可以多人同时进行视频语音通话),如下图:
呼叫方影像
呼叫方发出呼叫请求之后,在被呼叫对象的操作界面上会受到一则由呼叫方发出的呼叫请求提示,被呼叫对象根据提示即可相应呼叫方的呼叫请求。如下是其中一个应答列表界面:
应答列表
被呼叫方影像
这样就可以进行视频语音的通话了,至于视频的清晰度,传输速率等方面的设置可以通过设定视频采集的参数等方面来设置,比如视频编码方式H.265(不过如果想让Flex支持这个设置,需要将Flex SDK进行升级,否则在低版本的不支持这一编码支持),这里就不多说了!
下面开始介绍视频会议的第二项重要功能那就是共享白板以及多人在线聊天功能,相信大家也在项目中用过类似的功能,下面是本人jplogic上做的一个多人在线聊天、共享白板功能,仅供各位网友参考(下面白板的界面可以根据项目用户体验的需要做调整,本人仅作一个界面参考):
呼叫方白板主界面
被呼叫方白板主界面
大家可以看出以上两个白板界面对比可以看出,一方在白板上做的操作结果可以在另外一方的白板界面上同步显示,这就是共享白板的要求,其实共享文档的原理也类似,
下面我简单介绍一下共享文档实现原理:提交需要共享文档(pdf、office文档、txt文件)----->调用通过第三方软件将各个类型的文本文件转化成swf文件记录----->在Flex中通过同步swf文件路径,这样就可以在一方共享的文档在另外一方的界面同步显示需要共享的文件。在这里我就不多说了。
说了这么多废话相信大家也会知道其中的原理,像这样的功能我们需要使用到FMS提供了“远程共享对象”(SharedObject)的功能,可以让多个Client端的flash应用共享同一个全局对象,并且当客户端中的任何一个改变该对象时,系统会自动将该对象回发到FMS服务器,同时FMS服务器也会将该对象重新广播到所有客户端。说得通俗一些就是就是比如A客户端在白板上所画的线,B客户端在他的电脑上面也可以看到。传统的实现方法,是A画图的操作通过网络传送给B,双方各自调用画图的代码。程序实现还是相对比较复杂。但在Flex中实现这一功能就相对简单多了,这也是很对开源视频会议项目中的共享电子白板功能了。
基础代码如下:
初始化连接
//初始化连接
private function initConn(appServerUrl):void
{
nc = new NetConnection();
nc.connect(appServerUrl);
nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);
}
创建共享对象
private function onNetStatusHandler(evt:NetStatusEvent):void
{
if(evt.info.code=="NetConnection.Connect.Success")
{
//**************************第一个贡献对象begin*************************
//创建一个远程共享对象
so = SharedObject.getRemote("JplogicFmsRemoteSO",nc.uri,true); //将生成*.fso文件再Fms中
//远程对象同步事件的监听
so.addEventListener(SyncEvent.SYNC,onSyncHandler);
so.connect(nc);
//**************************第一个贡献对象end*************************
}else{
Alert.show("jplogic连接Fms服务失败,错误信息码:"+evt.info.code);
}
}
同步监听 // 实现了发送消息(将消息添加到远程共享对象并更新远程共享对象的属性值),如果有多个客户端连接到该远程共享对象,
//这时就回触发远程共享对象的同步事件,通过同步事件处理方法就可以将远程共享对象中的数据同步到客户端。
private function onSyncHandler(evt:SyncEvent):void
{
//dosomething..
}
更新、新增共享对象属性
//更新远程共享对象中的属性值
so.setProperty("共享对象属性名",obj);
以上三个步骤基本可以完成一个基于远程共享对象的功能。
分享到:
相关推荐
【FMS多人视频会议系统】是一个利用Flash Media Server (FMS) 技术构建的高效、稳定的多人在线视频交流平台。这个系统的核心是FMS,它是由Adobe开发的一款服务器软件,专门用于实时流媒体处理,支持音频、视频的直播...
6. **互动功能**:例如文字聊天、屏幕共享、白板协作等,这些功能可以增强会议的互动性。 7. **安全性**:系统需要保护用户隐私,防止未授权访问和数据泄露,这涉及到加密技术和其他安全措施。 8. **可扩展性和...
《全套FMS流媒体系统管理与开发文档中文版》涵盖了Adobe Flash Media Server(FMS)的全面知识,是深入理解和操作这一流媒体平台的重要资源。本文将深入解析这些文档所包含的关键知识点,帮助读者掌握FMS的核心技术...
FMS是Adobe公司推出的一款流媒体服务器,它能够实时传输音频、视频数据,并支持互动应用程序。FMS提供强大的多媒体服务,包括直播、点播、录制、交互式视频通信等。在视频会议场景中,FMS扮演着服务器的角色,处理...
标题中的“fms.rar_FlashMX网络会议_conference_fms_视频会议_远程会议”揭示了一个关于使用FlashMX进行网络会议的系统或软件。FlashMX是Adobe公司开发的一款早期的Flash开发工具,它允许开发者创建丰富的互联网应用...
在多人视频会议系统中,FMS3起到了关键作用,它能分发用户的音视频流,实现多对多的互动。FMS3还提供API,允许开发者进行自定义功能扩展,例如用户权限管理、视频质量调整等。 创建在线视频会议系统的核心步骤如下...
标题中的“免费多人视频会议功能加强版本(Fms3和Flex开发(附源码))”指的是一个基于Fms3(Flash Media Server 3)和Flex技术开发的多人视频会议系统,该系统不仅提供基本的视频交流功能,还进行了性能优化和功能增强...
FMS是Adobe公司推出的一款强大的流媒体服务器软件,它能够支持实时的音频、视频通信以及数据共享功能,广泛应用于在线直播、视频会议、远程教育等领域。 在该系统的开发中,ActionScript是主要的编程语言,它是...
【流媒体服务器——FMS3教程】 在信息技术领域,流媒体服务器扮演着至关重要的角色,它们使得音频、视频等多媒体内容能够实时传输到用户的设备上,无需等待整个文件下载完毕。Adobe Flash Media Server(FMS)是...
4. **屏幕共享与白板功能**:在Flex中,可以集成额外的组件实现屏幕共享和白板功能,方便参会者展示内容和协作。 5. **用户认证与权限控制**:为了保护会议安全,需要实现用户登录和权限验证。Flex可以构建登录界面...
FMS(Flash Media Server)是由Adobe公司推出的一款强大的流媒体服务器软件,它能够处理实时流数据,提供高效的视频和音频流服务。本篇文章将深入探讨“全套FMS流媒体服务器工具集”中的关键组件及其作用。 首先,...
【FMS 视频会议源代码】是一款基于Adobe Flash Media Server (FMS) 开发的视频会议系统,它为用户提供了一种实时、交互式的在线沟通平台。FMS 是Adobe公司的服务器端流媒体技术,能够处理音频、视频以及数据的实时...
【基于FMS的网络视频会议系统设计】 网络视频会议系统是一种高效、实时的远程通信工具,它使得身处不同地点的用户能够通过网络进行面对面的交流。在本文中,我们将深入探讨一个基于FMS(Flash Media Server)技术...
FMS4.5破解版流媒体服务器FlashMediaServer4.5(文件较大分4个包) FMS是用于用户之间相互通讯的新平台。 它集成了Flash多媒体交互的特性,又添加了实时音频和实时数据流等新特色。 FlashMediaServer4.5资源比较难找带...
Flex视频会议系统是一种基于Adobe Flex技术构建的在线交互式沟通平台,主要利用FMS(Flash Media Server)服务器作为后台支持,提供高效、稳定的音视频通信服务。Flex是ActionScript 3.0的一个开发框架,它使得...
**FMS3**,即Adobe Flash Media Server 3.0,是一款强大的流媒体服务器解决方案,它为开发者提供了构建高质量实时视频会议、直播应用及富媒体互动平台的基础。FMS3支持多种流媒体传输协议,能够根据用户的网络带宽...
在Linux环境下,构建一个FMS(Flash Media Server)的替代品——fms2流媒体服务器是许多开发者和网络管理员的任务之一。本篇文章将专注于fms2流媒体服务器搭建过程中的一个重要环节:mencoder的安装。mencoder是...
标题中的"FMS视频会议发布及收看flash源文件"指的是使用Adobe Flash CS4开发的一款基于FMS(Flash Media Server)的视频会议系统。这个系统包括两个主要部分:一个是视频发布程序,另一个是视频接收程序。FMS是Adobe...
流媒体服务器FMS3.5 sn:1373-5465-5574-9110-6240-7230