毕业设计(论文)-基于局域网的视频会议系统.doc_第1页
毕业设计(论文)-基于局域网的视频会议系统.doc_第2页
毕业设计(论文)-基于局域网的视频会议系统.doc_第3页
毕业设计(论文)-基于局域网的视频会议系统.doc_第4页
毕业设计(论文)-基于局域网的视频会议系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于局域网的视频会议系统目 录摘要2Abstract21 前 言32 视频会议系统的基本原理43视频会议系统的设计和实现53.1 开发环境简介53.1.1 Java语言及其开发工具简介53.1.2 系统开发硬件环境63.2 系统的具体实现63.2.1 JavaGroups的具体实现63.2.2 对JavaGroups的扩展实现视频会议系统93.3视频会议系统的相关技术133.3.1 Java媒体框架133.3.2 CSCW134 结 束 语145 谢 辞146 参考文献14 摘要传统的会议总是需要先预定时间、地点,统一开会人员及布置会场、记录、主持等,会议所要解决的问题或是要制定的方案、决策常常由于许多客观因素而耽搁。视频会议(VideoConference)系统是一种能把声音、图像、文本等多种信息从一个地方传送到另一个地方的通信系统,它解决了以上的问题,免去了很多会议开支,缩短了解决问题的周期,使客观因素的影响大大减小。视频会议系统作为计算机技术和通信技术相结合的产物,正随着波及全球的信息高速公路的兴起而迅速发展起来。本文介绍了视频会议系统的基本概念,与其相关的Java媒体框架(JMF:Java Media Framework)和计算机支持的协同工作(CSCW:Computer Supported Cooperative Work)系统,Java语言及其开发环境,并根据视频会议系统的基本结构和一些相关技术,说明了一个基于JavaGroups工具包的小型视频会议系统的设计和实现。关键词: 视频会议系统;JavaGroups工具包;Java媒体框架;计算机支持的协同工作Abstract Traditionally,holding a conference needs some complex procedures for a long time ,such as pre-arranging the schedule ,place ,people ,preparingthe hall ,recorder ,master and so on. The goal of a meeting , resolving problems or making plans and decisions ,will be usually delayed by suchobjective factors. The video conference system is a communication systemthat transmits many kinds of signals such as video, audio, text and so on from one place to another. It is created to save money and time because of meetings and helps reducing the influence of objective factors. Thevideo conference system is the combination of computer technology andcommunication technology, and it is now developing very fast with the National Information Infrastructure of the whole world. This article introduces the basic concepts of the video conference ,JMF(Java Media Framework) and the CSCW (Computer Supported Coorperative Work)system and Java language. According to the basic structure of video conference and some other technology,it describes the design and implementation of a mini-video conference system based-on JavaGroups toolkit.Key words :video conference system;JavaGroups toolkit;JMF;CSCW1 前 言会议,是人类社会经济生活中不可或缺的一部分,有关的研究表明,通信的有效性约55%依赖于面对面(face-to-face)的视觉效果,38%依赖于说话语音,视听是人们获取信息的最重要形式,而面对面的讨论(face-to-face)是人类表达思想最丰富的一种方式。自工业革命后,科技的发达使得通信技术有了突破性的进展,电话和电报的发明,使远地的人们可以立即传送声音和文档。然而,除了言语的沟通外,人类更注重的是表情和肢体的表达,仅仅是声音的传送已经无法满足现代人交流的需求,即时并且互动的影像更能真实自然的传送信息。(1)视频会议系统正是在这种迫切需要的推动下产生的新一代通信产品。视频会议(VideoConference)系统是一种能把声音、图像、文本等多种信息从一个地方传送到另一个地方的通信系统。有效发送基于视频的信息,可以在远程部门和部门间开展合作,同时还可以实现诸如视频会议和视频点播等视频应用技术。视频会议系统是计算机技术与通信技术相结合的产物,它作为多媒体通信技术的一个重要组成部分,正随着波及全球的信息高速公路的兴起而迅速发展起来。 视频会议从出现至今已有三十多年,从最开始的减少旅行费用,提高工作效率,到911时的加速国内外协作,保障人身安全等,再到SARS时保障社会的稳定和各项工作最低限度的运转,视频会议的优越性正在越来越被广泛的显示出来。(2)鉴于视频会议系统在军事、经济、文化等领域给人类带来的巨大作用和经济效益,各国竞相研究和开发视频会议系统,特别是在超大规模集成电路、压缩算法及视觉生理研究方面取得了突破性进展和关于视频会议的一系列国际标准相继出台,以及各种图像实时处理芯片纷纷推出后,视频会议系统的实用化才得到长足的发展。目前国内外的主要应用有:商务交流商业会议企业客户服务和产品开发远程教学和技术培训市场调查和情报收集远程医疗和会诊科研合作和工程设计跨国企业应用招募员工 从目前的发展来看,有关视频会议技术的研究很多,有关的产品也非常丰富,尽管视频会议系统有十分诱人的广阔前景,但在这个领域中还有相当多的技术问题亟待解决,其中在现阶段影响视频会议系统实用性、通用性及友好性的相关技术和有关问题有:软件技术、数据库技术、网络技术、共享技术、资源控制技术、保密技术和会议模型技术。(3)本项课题主要研究的是用软件的方式,配合一些必要的外设,实现一个小型视频会议系统。 2 视频会议系统的基本原理 视频会议(VideoConference)系统的基本定义是:两个或两个以上地理位置不同的个人或群体,通过传输线路和多媒体设备,将声音、图像、视频影像和文件资料交互的传递,达到即时并且互动的沟通,以便完成会议目的的系统。从定以上看,视频会议是一种典型的多媒体通信,下图是一个典型的视频会议系统示意图:PC到其他站点到其他站点PC多点控制器MCU大型显示终端控制器控制器辅助摄像机文献摄像机VCR 图1.1 一个典型的视频会议系统的示意图从上面的示意图我们可以大致看出,视频会议系统主要有三个部分组成,即通信网络、会议终端和多点控制单元。视频会议系统实质上是计算机技术和通信技术相结合的产物,所以通信网络是视频会议系统的基础组成部分之一,会议终端是将视频、音频、数据、信令等等各种数字信号分别进行处理后组合成的复合数字码流,再将码流转变为与用户-网络兼容的接口,符合传输网络所规定的信道帧结构的信号格式送上信道进行传输。多点控制单元是视频会议系统用于多点视听信息的传输与切换部分,它是根据一定的准则处理视听信号,并根据要求分配各个要连接的信道,但它并不是视频会议所必须的。(1)通信网络是一系列的设备、机构和进程,通过它们,附着在网络上的终端用户设备能够进行有意义的信息交换。它涉及到网络传输协议、网络编程接口等内容。(4)视频会议系统的终端设备承担了多种媒体信息的输入、输出和处理,以及用户和网络之间的连接、交互和控制等多项任务。它属于用户数字通信设备,在系统中处在用户的视听、数据输入/输出设备和网络之间。(1)视频会议中有时需要进行多点间的信息传输和交换,这时可以借助于多点控制单元(MCU)来实现。多点控制单元实际上就是一台多媒体信息交换机,实现多点呼叫和连接,实现视频广播、视频选择、音频混合、数据广播等功能,完成各终端信号的汇接与切换。MCU将各个终端送来的信号进行分离,抽取出音频、视频、数据和信令,分别送到相应的处理单元,进行音频混合或切换,视频切换、数据广播、路由选择、会议控制、定时和呼叫处理等,处理后的信号由复用器按照H.221格式组帧,然后经网络接口送到指定端口。(5)3 视频会议系统的设计和实现3.1 开发环境简介3.1.1 Java语言及其开发工具简介Java语言是当今流行的新兴网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的计算概念,使WWW从最初的单纯提供静态信息发展到现在的提供各种各样的动态服务,发生了巨大的变化。Java的出现导致了程序设计领域的一场革命,它被誉为20世纪出现的最重要的技术之一。Java不仅能够编写小应用程序实现嵌入网页的声音和动画功能,而且还能够应用于独立的大中型应用程序,其强大的网络功能能够把整个Internet作为一个统一的运行平台,极大的拓展了传统单机或Client/Server模式应用程序的外延和内涵。自从1995年正式问世以来,Java已经逐步从一种单纯的计算机高级编程语言发展为一种重要的Internet平台,并进而引发、带动了Java产业的发展和壮大,成为当今计算机业界不可忽视的力量和重要的发展潮流与方向。(6)概括的说,Java是一种性能优异的、简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构的、中立的、可移植的、多线程的和动态的语言。Java的开发工具分成三大类,分别为:l 文本编辑器。这类工具只提供了文本编辑功能,它只是一种类似记事本的工具。这类工具进行多种编程语言的开发,如C、C+、Java等。主要有UltraEdit和EditPlus等编辑器。l Web开发工具。这类工具提供了Web页面的编辑功能,具体到Java主要就是JSP页面的开发。主要有HomeSite等。l 集成开发工具。这类工具提供了Java的继承开发环境,为那些需要集成Java与J2EE的开发者、开发团队提供对Web应用程序、Servlets、JSPs、EJBs、数据访问和企业应用的强大支持。现在的很多工具属于这种类型,也是Java开发工具的发展趋势。主要有Jbuilder、WebGain、WebSphere Studio等。JBuilder是目前最好的Java开发工具之一,在协同管理、对J2EE和XML的支持等方面均走在其它产品的前面。JBuilder的主要特性有:l 提供与Tomcat(Tomcat 是一种有JSP环境的Servlet的容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳)的集成,使Web开发更容易。l 提供了对企业应用的开发功能,可以集成多种应用服务器。l 提供了更简单的程序发布功能,所有的应用都可以打包。l 提供了团队开发能力,可以集成多种版本控制产品。JBuilder是遵循Sun公司J2EE标准的可视化集成开发工具。它是一种处于市场领先地位的跨平台环境,主要用于构建具有行业实力的企业Java应有程序。JBuilder继承了Borland公司开发工具系列的优秀特性,这使得用过Delphi、C+Builder的程序员很容易的过渡到JBuilder的开发环境中。(7)本系统中使用的Java开发工具为JBuilder9。3.1.2 系统开发硬件环境CPU:P4 1.70G 内存:256MB 硬盘:40GB操作系统:Microsoft Windows2000 Professional3.2 系统的具体实现3.2.1 JavaGroups的具体实现本系统是基于JavaGroups来分析和设计的。JavaGroups是一个由康奈尔大学开发的基于Java的工具包,它提供了可靠的组通信。 它的功能包含了向组内所有成员发送消息,并确保每个成员接收到相同序列的消息。它的基本概念是一个类似于BDS套接字的频道:用户可以给出他们想加入的组的名字然后连接上,发送并接受消息,找回当前加入的所有成员,并且当有成员加入或离开时可以得到通知。同名的所有频道可以彼此“发现”,而且经由一个频道发送的消息可以被同一个组(有一样的名字)中所有的频道接收到。(8)JavaGroups的文件夹中包含了12个文件夹和31个java文件,把他们放在一起在JBuilder9中生成一个工程文件。该文件中则有12个Java包和31个Java文件。这些包分别为:blocks、conf、debug、demos、ensemble、log、persistence、protocols、service、stack、tests和util。本文种主要讨论了其中四个包的主要功能:l service包:抽象类AbstractService:所有服务器实现的一个超类, 每一个服务器有两个通讯频道:一个被内部服务器用来和组内的合法成员通信,另一个被客户服务器用来进行组间通信。类ServiceRunner:以单机模式来启动服务器。class: ServiceRunnerpublic static method:(1) main(String args)根据args.length和Resourcename来确定是否启动服务器。(2) startService(ResourceBundle res)从特殊化的resource中抽取参数,创建服务器实例并启动它。Private static method: printUsage()打印这个类的作用。Public static field:(1) CLIENT_CHANNEL_STACK 客户通信频道的协议栈。(2) CLIENT_GROUP_NAME 客户通信频道的组名。(3) SERVICE_CHANNEL_STACK 服务器通信频道的协议栈。(4) SERVICE_GROUP_NAME 服务器通信频道的组名。接口lease:描述了一个被租借管理器赋权的标号,允许在一段限定的时间内访问一些资源。Interface:leasePublic method:(1) getExpiration()获取租借期满时间,租借期满时间总是一个绝对的值。(2) getDuration()检查租借是否期满。(3) getLeaseTarget()获取租借的对象并返回代表租借源的唯一标示符。(4) getTenant()获取该租借的承租者并返回获得租借的实体的唯一标示符。(5) getFactory()获取创建该租借的LeaseFactory的实例接口LeaseFactory:负责批准新的租借,更新现有的租借并删除不需要的租借。类LeaseFactoryClient:是接口LeaseFactory的一个实现,它代表了包含一个或多个LeaseFactotyService实例的组中被批准的租借。类LeaseFactoryService:是能够租借资源给用户的服务器。租借请求通过用户-服务器通讯频道发出,并由message headers中的LeaseRequestHeader的存在进行识别。在每个message中可能只有一个租借请求,它包含了租借期限和请求租借的实体的信息,有效载荷payload信息包含了对租借资源的唯一识别。类LeaseRequestHeader:Header的子类,代表了租借请求。类LeaseResponseHeader:Header的子类,代表了服务器的响应,在消息中存在这个header表示先前的请求成功了。header的类型决定了满足了何种类型的请求。 l stack包:类AckMcastReceiverWindow:创建并维持一个信息栈,接受不同发送者发送的信息。应答收到的每条信息,检查它是否已被拒绝,如果是,则抛弃该信息,否则拒绝它。信息中包含了需要删除的旧信息的序列号,它们要从信息表中移除。 类AckMcastSenderWindow:为每一条信息维持一个栈,保存接收者发出的ack。类AckSenderWindow:一个发送者的基于ack的滑动窗口,当收到一个ack时,消息将按照序列号的顺序填加进窗口,同时删除应答消息。类Configurator:用来设置并配置协议栈,把一个用来描述没一层的分层和配置的字符串传递给创建和配置协议栈的配置器,然后向顶层返回一个参数。类GossipServer:为每个租借维持一个成员地址的缓冲区,它有两个基本功能:获取一个给定组的成员并为一个给定的组注册一个新成员。类GossipClient:是一个本地stub,使用基于TCP的私有协议连接到GossipServer。类GossipData:封装GossipServer和GossipClient间传送的数据。类Interval:管理重新发送的时间间隔。类IpAddress:依赖于网络的地址,由协议栈UDP的最底层产生,包含一个网络地址和端口。抽象类Protocol:为协议层提供了一套公用的服务器。每一层必须是protocol的一个子类并且重载一些方法(典型的如up,down和getname)。各个层以一定的顺序堆叠在一起形成一个协议栈。类MessageProtocol:Protocol的子类,它是基于协议的,但合并了RequestCorrelator和GroupRequest,后者用来向所有成员发送消息并接受他们的响应。类ProtocolStack:Protocol的子类,ProtocolStack管理许多协议,它创建所有的protocol类,把他们初始化,并且当准备好时,以最低层协议为开始启动它们。它还把从栈中接收到的信息分派给已注册的对象,如channel,GMP,而且把这些对象发送的信息沿着栈发送下去。ProtocolStack利用Configurator来建立和初始化栈,并且当不再需要它们时销毁这些栈。类NakReceiverWindow:根据信息的序列号维持栈。允许信息不按顺序添加,并且序列号线可以有间隙。 接口ProtocolObserver:为调试器设置的接口,用来接收关于一个协议层的通知。定义了hook,当重大事件发生时由protocol调用它们,例如接收到一个事件。每一个ProtocolObserver都要有一个它所监听的协议的参考。类Retransmitter:维持一个需要重新发送的信息序列号池,信息被标上时间,重发请求根据时间先后。类StateTransferInfo:包含了状态转换的参数,在channel和STATE_TRANSFER间进行转换。l tests包:用来对各个模块进行测试。l util包:Java.util包包括了Java语言中的一些低级的使用工具,该util包则在其基础上进行了一些改善,使其更适合实际的系统。如其中的类LinkedListQueue,是建立在java.util.Queue之上,如果想使用这个类代替原始的类,它也可以重命名为Queue.java并编译,3.2.2 对JavaGroups的扩展实现视频会议系统 VideoConference和JavaGroupsVC是为实现视频会议系统并且基于JavaGroups而设计的。VideoConference是JavaGroups的一个扩展包,JavaGroupsVC是基于JavaGroups的一个视频会议的应用程序。它是一种开放源码的程序,提供了一种多平台视频会议的解决方案。JavaGroupVC支持三个数据频道:一个用于视频广播的视频频道,一个用于音频广播的音频频道和一个用于聊天对话的文本频道。加入某一个组的用户可以和该组中所有的成员共享视频和音频。 每个用户要选择一个用户名和卡通图标来代表自己。在一个特定的组内,用户名和图标都是唯一的。如果在该组中这个用户名或图标已经有人用过了,则新来者就要换另一个了。组内的所有成员都可以选择发送消息至所有人或者特定的某个人。所有对连接有用的组和目前存在的组将以一种可扩充的树结构显示出来,这样用户可以浏览每个组来找一个感兴趣的加入。用户可以无限次地加入或重复加入某个组,但是在某个特定时间,一个用户只能在一个组中,他必须离开当前所在的组才能够进入另一个组。JavaGroupsVC使用层结构来设计的。有三个主要的层:图形用户界面层、控制层和数据层。如下图所示:图形用户界面管理器图形用户界面层组列表组列表管理器组管理器控制层用户信息用户信息管理器成员管理器媒体管理器数据层文本管理器音频管理器视频管理器图2.1 JavaGroupsVC的分层结构其中包含六个主要部分,四个对用户是可见的。它们是图形用户界面层中的图形用户界面部分,数据层中的视频部分,音频部分和文本部分。另外两个对终端用户透明的部分是控制层中的组内成员部分和组间成员部分。图形用户界面层 该层的主要部分是图形用户界面管理器(GUIManager),它通过轻量Java Swing组件来处理所有的用户事件。GUIManagers实现了接口WidowListener、ActionListener和Runnable,它包含了四个子组件:聊天面板,媒体面板,成员面板和组面板。聊天面板(ChatPanel)用来显示或记录聊天会议的活动(文本面板),聊天面板由一个用于输入消息的文本区域和一个用于显示来自所有成员的消息的文本区域组成;组面板(GroupsPanel)用来显示所有的组和组中所有的成员。它有一个包含所有组的树形结构,从中可以看到每个组内的成员;成员面板(MembershipChanel)用来显示当前组中的所有成员,组中的每个成员用一个带有用户名和用户图标的可击按钮来代替,聊天中私有消息可以通过点击代表那个特殊成员的按钮来发送;媒体面板(MediaPanel)用来显示视频和音频播放器。另外,GUIManager中还包含了一个用户菜单项(UserMenuItem),它是Swing组件中菜单项(JMenuItem)的子类,它存储了必要的用户信息 ,当GUIManager的菜单中有一个用户被选中时,同他的视频会议就可以开始了。为了使应用程序面对用户真正做到交互性,用户事件必须通过GUIManager下的四个子组件来传播信息。另一方面,为了显示在JavaGroups框架下发生的活动和事件,各种管理器(如音频管理器AudioManager、视频管理器VideoManager、文本管理器TextManager、成员管理器MembershipManager等)都需要一种能与四个子组件通信的方法。图形用户界面管理器处理图形用户界面层与控制层和数据层之间的所有通信。图形用户界面层中还包括一个音频过滤器和一个视频过滤器,把系统不支持的音频格式文件和视频格式文件过滤掉,该系统支持*.au格式的音频文件和*.mpeg格式的视频文件。这两个类都继承了javax.swing.filechooser中的FileFilter类,通过获取文件的名字来判断是否支持此文件。控制层(ControlManager)控制管理器包含两大部分,组管理器(GroupsManager)和成员管理器(MemebershipManager)。其中定义了如下的数据结构:GroupList:用来存储一个组的信息,包括组名和用户信息管理器;UserInfo:用来存储单个成员的信息,包括用户名、地址、聊天地址、视频地址、音频地址、默认地址和序列号。组列表管理器(GroupListManager)是GroupList的数据结构管理器,它用来处理在一个组列表中添加和删除组的操作。用户信息管理器(UserInfoManager)是UserInfo的数据结构管理器,它用来处理关于把可读的用户名和终端地址联系起来的所有事务。组管理器(GroupsManager)属于频道管理器,它运行组间成员管理协议,并且通过GUIManager同用户事件进行通信。它是抽象类Manager的子类,并且实现了接口MembershipListener和MessageListener。组管理器实现了加入一个组,离开一个组,获取自身地址,设置成员管理器、音频管理器、视频管理器、文本管理器、组列表管理器等功能。它同时包含了组列表管理器。成员管理器(MemebershipManager)也属于频道管理器,它同样也运行组间成员管理协议,并且通过GUIManager同用户事件进行通信。它也是抽象类Manager的子类,实现了接口MembershipListener和MessageListener。成员管理器定义了当前成员向量、新成员向量、当前视图、用户信息变量,还有一些布尔变量用来标示当前成员所处的状态,如是否是协调者,是否在进行视频、音频广播等。另外还实现了连接到一个组、离开一个组、获取成员信息、接收信息、发送视频/音频广播请求、对请求的允许或拒绝等功能。它同时包含了用户信息管理器。在这一层中除了管理器之外,还定义了特殊的控制消息,这一层中所有的控制消息都是JavaGroups中消息类(Message)的子类。它又分为组列表控制消息、媒体消息信息和成员控制消息。如下所示:五种不同的组表控制消息:BcastNewGroupMsg:由一个新组的创建者发出的广播消息,用来通知其他组的所有用户建立了一个新组。GroupListRequestMsg:从一个新的成员发出到所有组的协调者得点到点的消息,用来请求当前的组列表。GroupListReplyMsg:当前组列表中所有组的协调者对要求组列表的请求者得点到点的答复信息。MemberJoinGroupMsg:一个组中的协调者用来通知不同组中的用户有新成员加入该组的广播消息。MemberLeaveGroupMsg:一个组中的协调者用来通知不同组中的用户有新成员离开该组的广播消息。十一种不同的成员控制信息BcastUserInfoMsg:新成员向组内所有成员发布的关于它本身的广播消息。AudioChannelBcastMsg:新成员向组内所有成员发布的关于它自己的音频地址的广播消息。VideoChannelBcastMsg:新成员向组内所有成员发布的关于它自己的视频地址的广播消息。TextChannelBcastMsg:新成员向组内所有成员发布的关于它自己的文本地址的广播消息。InitialMembersRequestMsg:从一个新的成员发出到所有组的协调者的点到点的消息,用来请求当前的组列表。InitialMembersReplyMsg:从当前组列表中所有组的协调者对要求组列表的请求者的点到点的答复消息。IconInquiryMsg:从一个新的成员发出到所有组的协调者的点到点的消息,用来请求可用图标的列表。IconInquiryReplyMsg:当前组列表中所有组的协调者对要求可用图标列表的请求者的点到点的答复消息。JoinRequestMsg:新成员发给该组协调者的点到点的消息,用来请求加入该组。JoinRequestGrantedMsg:组内的协调者发给新成员的点到点的消息,用来允许该成员加入该组。JoinRequestDeniedMsg:组内的协调者发给新成员的点到点的消息,用来拒绝该成员加入该组。十三种不同的媒体控制消息:StartVideoConferenceRequestMsg:从一个成员(请求者)发给另一个成员(接收者)的点到点的消息,用来请求一段视频对话。StartVideoConferenceRequestGrantedMsg:一个成员(接收者)发给另一个成员(请求者)的点到点的消息,表示同意举行视频对话。StartVideoConferenceRequestDeniedMsg:一个成员(接收者)发给另一个成员(请求者)的点到点的消息,表示拒绝举行视频对话。StartAudioBcastMsg:组内协调者向所有成员发出的广播消息,表示一段音频广播的开始。EndAudioBcastMsg:组内协调者向所有成员发出的广播消息,表示一段音频广播结束。StartAudioRequestMsg:组内成员(请求者)发给协调者的点到点的消息,请求允许在组内广播音频。StartAudioRequestGrantedMsg:组内协调者发个请求者的点到点的消息,允许它在组内广播音频。StartAudioRequestDeniedMsg:组内协调者发个请求者的点到点的消息,禁止它在组内广播音频。StartVideoBcastMsg:组内协调者向所有成员发出的广播消息,表示一段视频广播的开始。EndVideoBcastMsg:组内协调者向所有成员发出的广播消息,表示一段视频广播结束。StartVideoRequestMsg:组内成员(请求者)发给协调者的点到点的消息,请求允许在组内广播视频。StartVideoRequestGrantedMsg:组内协调者发个请求者的点到点的消息,允许它在组内广播视频。StartVideoRequestDeniedMsg:组内协调者发个请求者的点到点的消息,禁止它在组内广播视频。数据层(DataManager) 这一层中定义了数据频道的管理器和消息类型。媒体管理器类(MediaManager)是数据频道管理器的超类,同时也是管理器类(Manager)的子类。视频管理器(VideoManager)、音频管理器(AudioManager)和文本管理器(TextManager)都是媒体管理器类的子类。他们分别是视频频道、音频频道和文本频道的频道管理器,通过GUIManager同用户事件进行通信。该层中包含了其中不同的消息类型,他们也是JavaGroups中消息类(Message)的子类。StartVideoMsg:广播消息,当某成员正在向所有的成员广播视频时,来自该成员的第一个视频包,以便他们可以开始新的播放。VideoMsg:包含视频数据的广播消息。EndVideoMsg:广播消息,当某成员正在向所有的成员播放视频时,来自该成员的最后一个视频包,以便他们可以停止播放。StartAudioMsg:广播消息,当某个成员正在向所有的成员播放音频时,来自该成员的第一个音频包,以便他们可以开始一个新的音频播放。AudioMsg:包含音频数据的广播消息。EndAudioMsg:广播消息,当某个成员正在向所有的成员播放最后的音频时,来自该成员的最后一个音频包,以便能够停止音频播放。TextMsg:向组中的所有成员播放公共消息或是向一个包含文本数据的特殊接收器中播放点对点的私有消息。 3.3视频会议系统的相关技术3.3.1 Java媒体框架2001年3月,Sun公司推出了新品Java媒体框架(Java Media Framework,简称JMF),这是Java平台上的一种多媒体“one-stop shop”(一站购齐)是软件,它包括了各种媒体应用程序。它是能够在Java独立应用程序和小应用程序中显示、获取多媒体数据的类的集合。JMF为媒体播放器、媒体的获取以及媒体会议定义了统一的体系结构、消息处理协议和程序设计接口。JMF提供了一套构建块(building blocks),它对JMC API的其它部分是非常有用的。例如,JMF提供了一跨平台、与设备无关的方式访问音频设备的方法。另外,诸如动画和视频等基于时间的媒体演播也需要以相同的方法处理。JMF2.1.1是对应Java2平台标准板(J2SE)的一种可选用的应用编程接口软件包,它为音频和视频等媒体内容的捕获、回放、流转和编码转换等提供了统一的架构。(9)JMF技术目前的版本为2.1.1b。JMF2.1.1技术提供了先进的媒体处理能力,扩展了Java平台的功能。这些功能包括媒体捕获、压缩、流转、回放,以及对各种主要媒体形势和编码的支持,如M-JPEG、H.263、MP3、RTP/RTSP(实时传送协议和实时流转协议)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format(RMF)等。(10)在本系统中,安装的是2.1.1版本的JMF。将JMF的库文件添加到工程里面,然后就可以使用它提供的各种类和接口了。本系统中使用到了javax.media包,它是JMF中最重要的包,包含了JMF运行时必要的类。3.3.2 CSCW随着社会的发展和科技的进步,各种工作变得越来越复杂。以胆完成一项工作可能只要一个人或几个人就能胜任了,现在与以前大不相同了,几乎每项工作的完成都是许多人智慧的共同结晶,因此协同工作在当今社会变得日益重要。在协同工作中最重要的问题是如何提高整个工作的效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论