(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf_第1页
(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf_第2页
(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf_第3页
(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf_第4页
(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(信号与信息处理专业论文)基于多线程uimodel的远程实时交互教学系统.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着计算机技术的发展以及计算机网络的普及 利用计算机技术与计算机网 络进行远程教学的教学方式逐渐被引入到现代教学当中 一方面 利用计算机强 大的多媒体功能 教师可以结合文字 图片等多种媒体格式进行课程的讲解 另 一方面 利用计算机网络的实时性 教师可以实现与学生一对一或者一对多的实 时交流 随着远程教学的发展 教师与学生的交流不仅仅满足于文字 图片等内 容 统 的电子白板 文档共享 实时视频音频交互等功能亟需引入到远程教学 系统中 如何设计和架构远程实时交互系统的系统结构 使系统在原本的交互功 能基础上能够容易的添加新的交互功能 并可以针对不同的交互需求 对所支持 的交互功能进行取舍而不影响整个系统的工作 丌发的交互模块易于重复利用于 后续的开发当中 是一个亟需解决的问题 文档共享作为远程实时交互系统的一 个重要组成部分 在该系统中扮演着重要的角色 文档共享不仅要求远端的教师 与学生能够同步显示文档内容 支持包括d o c p p t p d f h t m l 等多种常见 格式文档 而且在远程教学这个特殊情形下 十分需要一个可以在文档表面进行 标注的功能 用以提示教师所讲解内容的重点难点 避免造成远端学 土跟不上教 师讲解的思路的情况 本文针对远程实时交互系统中亟待解决的交互功能扩充与复用及通用的文 档共享的问题 提出了多线程u i m o d e l 体系结构 利用用户界面委托层 对传 统的u i m o d e l 体系结构 进行了改进 实现了远程实时交互教学系统中交互功 能的扩充与交互模块的复用 应用基于w 曲b r o w s e r 控件实现了通用文档共享模 块 并结合g d i 的应用实现了在文档共享中同步绘图交互的功能 本文利用多线程u i m o d e l 体系结构设计和实现了一种易扩展 可复用的具 有文字 视频 电子自板 文档共享等多种实时交互功能的远程实时交互教学系 统 关键词 多线程u i m o d e l 文档共享实时交互 ab s t r a c t a b s t r a c t w i mt h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n dt h ep o p u l a r i t yo fc o m p u t e r n e t w o r k s u s i n gc o m p u t e rt e c h n o l o g ya n dc o m p u t e rn e t w o r k sf o rd i s t a n c el e a r n i n ga r e g r a d u a l l yb e i n gi n t r o d u c e dt om o d e mt e a c h i n gs y s t e m u s i n gc o m p u t e rm u l t i m e d i a f e a t u r e s t e a c h e r sc a nc o m b i n et e x t p i c t u r e sa n do t h e rm e d i af o r m a ti n t ot h ec l a s s o n t h eo t h e rh a n d t e a c h e r sa n ds t u d e n t sc a na c h i e v eo n e o n o n eo ro n e t o m a n y r e a l t i m ec o m m u n i c a t i o n h o wt od e s i g na n ds t r u c t u r e o fl o n g r a n g er e a l t i m e i n t e r a c t i v es y s t e ms t r u c t u r eo ft h es y s t e mw h i c hi se a s yt oa d dn e wi n t e r a c t i v e f e a t u r e s a 1 1 dc a ni n t e r a c tf o rd i f f e r e n tn e e d s s u p p o r c e db yt h ei n t e r a c t i v ef e a t u r e s c h o i c ew i t h o u ta f 免c t i n gt h ee n t i r es y s t e m a n dt h ei n t e r a c t i v em o d u l ec a ne a s i l yt ob e r e u s e d i sa nu 唱e n tn e e dt os o l v et h ep r o b l e m d o c u m e n ts h a r in ga s o n eo fm e i m p o n a n tc o m p o n e n to fl o n g r a n g er e a l t i m e i n t e r a c t i v es y s t e mr e q u i r e sn o to n l ya r e m o t el e a c h e r sa n ds t u d e n t sc a ns i m u l t a n e o u s l yd i s p l a yc o n t e n to ft h ed o c u m e n t i n c l u d i n gs u p p o nf o rd o c p p t p d f h t m l a n do t h e rc o m m o nd o c u m e n tf o 衄a t s b u ta l s oi n1 0 n g d i s t a n c et e a c h i n gr e m o t et e a c h e rc a nm a r k i n gt h ed o c u m e n tw i t ht i p s a n ds h a p e s a v o i dr e m o t es t u d e n t su n a b l et ok e e pu pw i t ht h ei d e ao ft e a c h e r s m u l t i t h r e a du i m o d e la r c h i t e c t u r ei sp r o p o s e di nt h ep a p e rb yi n l r o d u c e s i n t e r f a c e d e l e g a t el a y e fi n t ot r a d i t i o n a lu i m o d e la r c h i t e c t u r e s o l v i n gt h ep f o b l e m o f t h ee x p a n s i o no fs y s t e mi n t e r a c t i v ef u n c t i o n sa n dr e u s i n go fi n t e r a c t i v em o d u l e s d o c u m e n ts h 2 u r i n gm o d u l eb a s e do nw e b b r o w e ra n dg d i p r o v i d e st h e s y n c h r o n o u sv i e w i n go fm o s tp o p u l a rd o c u m e n t sa n dr e a l t i m ed r a w i n gi n t e r a c t i v e a ne a s yt oe x p a n da n dr e u s er e m o t er e a l t i m ei n t e r a c t i v et e a c h i n gs y s t e mb a l s e do n m u l t i t h r e a du i m o d e l c o n t a i n sl e t t e r v i d e o w h i t e b o a r d d o c u m e n tr e a l t i m e i n t e r a c t i v ef h n c t i o n s i si m p l e m e n t e di nt h ep a p e r k e yw o r d s m u l t i t h r e a du i m o d e l d o c u m e n ts h a r i n g r e a l t i m ei n t e r a c t i v e i i 中国科学技术大学学位论文原创性和授权使用声明 本人声明所呈交的学位论文 是本人在导师指导下进行研究工作 所取得的成果 除已特别加以标注和致谢的地方外 论文中不包含任 何他人已经发表或撰写过的研究成果 与我一同工作的同志对本研究 所做的贡献均已在论文中作了明确的说明 本人授权中国科学技术大学拥有学位论文的部分使用权 即 学 校有权按有关规定向国家有关部门或机构送交论文的复印件和电子 版 允许论文被查阅和借阅 可以将学位论文编入有关数据库进行检 索 可以采用影印 缩印或扫描等复制手段保存 汇编学位论文 保密的学位论文在解密后也遵守此规定 作者签名 1 莎年 夕飘五乃 月i 夕日 第1 章绪论 第1 章绪论 本章将首先介绍研究并发展远程实时教学系统的重要意义 然后介绍远程实 时教学系统领域研究和应用现状 最后结合课题介绍本文的主要研究内容 1 1 研究的背景及意义 以数字化为核心的信息技术的高速发展 引发了教育信息化的迅速发展 在 国内外高校教育中产生了前所未有的教学模式和教学方法创新 上世纪9 0 年代 问世的大学物理仿真实验系统1 2 习及在此基础上建立的大学物理仿真实验远程 教学系统 4 j 实验教学资源库系统和基于w e b 的物理实验信息化教学系引副都 是有代表性的信息化教学创新媒体 它们带动了教学方法和教学模式的变革 在 实现个性化教育 培养创新性人才方面发挥了重要的作用 e l e a m i n g 即电子远程教育是建立在应用双向交互电子信息通信基础上的远 程教育 基于计算机互联网络和各类先进通信网络的信息技术 具有双向交互的 特征和优势 目前基于计算机互联网络的远程教学能够为学生提供丰富的学习资 源和自主学习的良好条件和环境 但是 与此同时 教师和学生之j 日j 在通过利用互 联网进行远程教学的教学实践过程中也存在着缺乏交流或交流不足 学生在学习 过程中遇到的问题不能及时得到指导等情况 因此 建立功能强大的实时交互系 统是当前远程教学系统中亟待解决的问题 1 2 目前研究和应用现状 目前的远程实时交互教学系统由于交互功能模块与系统之间耦合性过紧 当 为系统增加新的交互功能时 需要对现有代码做很多的修改 因而功能模块不易 于移植到新系统中 实现功能模块的复用 另一方面 由于文档共享能支持学生 端与教师端对文档进行同步浏览 而成为远程实时交互教学系统的重要组成部分 目前文档共享系统虽大多能支持d o c p p t p d f h t m l 等多种常见格式文档 但在实际的远程教学过程中 教师在对远端的学生进行授课时 还常常需要在文 档表面直接进行绘图和标注 现行的文档共享系统 般采用将文档转换为图片的 方式来方便进行绘图 这样会造成文档的链接 动画等文档信息的丢失 类似产品大多需要专用硬件设备或者专用网络1 7 j 部署成本高 时问长 系 统功能过于复杂 不方便教学应用 如上海迈康视频会议系列产品 它配合多种 专用硬件 包括会议室视频终端 视频多点控制器等 实现成本较高 部署较复 1 第1 章绪论 杂 w e b e x 系统利用专有网络 成本相当高 w e b c t h t t p n w e b c t c o m 市场占有率全球第一 是由加拿大b r i t i s h c o l u m b i a 计算机科学系开发 它是一个基本的服务器程序 主要用于课程丌发 与联机教学内容发布 目前在该校和其它学校已有多门课程使用w e b c t 作为它 们的支撑环境 它包括安全控制 管理 数据备份等多项功能 它运行u n i x 系 统之上 w e b c t 是一个方便创建基于w e b 联机教育环境的紧密集成的工具 它可以用于开发完全联机的课程 也可以用于将现有的课程内容在网上发布 该 系统使用浏览器作为课程开发环境的接口 另外 w e b c t 还有一系列可以自动 与课程内容紧密集成的学习工具 它们包括 会议系统 在线聊天 学生学习过 程跟踪 小组项目组织 学生自我评价 成绩管理与发布 访问控制导航工具 定期测试 电子邮件 索引自动化生成 课程内容搜索等等 w e b c t 中支持 管理员 设汁师 评分员 学生四类用户 v i n u a l u h t t p v i r t u a l u c s s f u c a v u w e b 联机教育系统是一套在服务器上 运行的软件系统 w e b 丌发工具 由加拿大的s i m o nf r a s e r 大学丌发 它是一 个提供实施基于w e b 的教学和培训的集成工具 它可以设计 发布基于w e b 的联机教学内容 并为教师联机教学和学生联机学习提供了集成的教学工具和学 习工具 它具有 1 方便的课程设计 2 课堂讨论和展示 3 管理与评 价 4 系统管理与资源处理 5 文件上载功能等功能 该系统采用c g i 程 序实现 使用p e r l 语言丌发 可运行u n i x 或n t 平台 要求提供p e r l5 0 脚本 解释环境 l u v i t v wl u v i t c o m 英文全名为l u n du n i v e r s i t yv j n u a l i n t e r a c t i v et o o l 中文全名即龙德大学虚拟交互工具 它是目前第四代远程教育工具中较先进的一 种 l u v i t 以注重教学原则 方法为基准进行丌发 能适用于常见的操作系统 如w i n d o w s u n i x 和m a c 等 近两年内 龙德大学已先后投资达2 0 0 力 美元 开发出3 0 版本 翻译成九种语言 包括中文 在全世界有十万用户 在国际 相类似工具或系统中 l u v i t 除具有用户和内容的发布 交流 管理等通常功 能外 特别在界面选择性 交互性 教学策略灵活程度和用户友好方面具有领先 地位 主要特点和优点 异步通讯 信息系统 外部电子邮件 新闻论坛 同步通讯 分散式聊天 视频会议 白板 分享应用资源 个人主页 查询工具 e v a 评分系统 卫星和光盘联结 2 第1 章绪论 直接反馈 版本和文件处理 导入 导出部分或全部课程 九种语言 上载不同格式文件 可变化界面 灵活的课程设计 易于发表 上下文帮助 用户统计 外部用户社区 全球课程目录 课程市场 电子商务 通过插件易于扩展功能 支持多种可供选择的插件 公文包 l u v i t 服务器支持 音视频媒体流技术 视频会议 i b m 主要有两个针对远程教育的产品 一是针对远程教学内发布的l e a m i n g s p a c e 二是针对校园管理的p a t h w a r e l e a m i n gs p a c e 是建立于群件系统d o m i n o 之上的集学习环境 课程丌发和课 程管理为一体的交互式网上教学系统 它具备基本的交互功能 如在线聊天 讨 论组等 简单的课程丌发功能 l e 啪i n gs p a c e 只能制作一些简单的文本演示课 件 它们为课件制作提供生成模板 可以简化教师的制作过程 基本的课程管理 功能 可管理学生 教师的学习注册 访问权限以及课程目录 课程的建立和登 记 p a t h w 打e 是i b m 公司从m a c r o m e d i a 购买的在线学习管理系统 其基本的功 能是 1 教学素材的组织存储与搜索使用 2 学习者权限和进度的控制 3 生成课程描述 4 生成课程和提纲 5 习题考察和考试 6 课程学习评估 7 教学向导 3 第1 章绪沦 8 可视化报告生成 以上系统功能结构复杂 功能模块不易被引用和修改 灵活性不足 1 3 本文研究的主要内容 本文针对远程实时交互系统中亟待解决的交互功能扩充与复用及通用的文 档共享的问题 提出了多线程u i m o d e l 体系结构 利用用户界面委托层 对传 统的u i m o d e l 体系结构进行了改进 使之适用于多线程的应用程序丌发领域 解决了远程实时交互教学系统功能扩充与模块复用的问题 采用基于w 曲b r o w s e r 控件 通过在该控件之上添加用于获得鼠标信息的处 理层和用于同步绘图的绘图层 结合g d i 丌发了文档共享模块 在保证支持多 种文档格式的同时解决了直接在文档表面进行绘图 并使教师端在文档表面绘制 的图形可以在学生端同步显示 本文利用多线程u i m o d e l 体系结构设计一种易扩展 可复用的具有实时文 字 电子白板 实时视频音频 文档共享等多种交互功能的远程实时交互教学系 统 1 4 本文的组织 本文首先介绍实现远程实时交互教学系统中应用到的各种技术 包括c 撑语 言 x m l 语言 g d i 和w m e n c o d e r 丌发包等 介绍以上各种技术的特点以及 应用在系统的哪个部分 然后阐述远程实时交互教学系统整体设计 包括系统拓 扑设计和功能设计 接下来阐述多线程u i m o d e l 体系结构的设计和应用 u i m o d e l 体系结构解决的问题 以及采用该体系结构进行了r 发具有的特点和优 势 而后阐述实现远程实时交互教学系统中各交互功能模块的实现 其中重点介 绍文档共享模块的设计和实现 最后将各个交互模块组织成一个完整的系统 并 展示系统运行效果 4 第2 章远程实时交互教学系统戍川的土要技术 第2 章远程实时交互教学系统应用的主要技术 本章将介绍在本文实现的远程实时交互教学系统中应用到的各种技术 包括 主要开发语言 数据库 应用到的开发包等 2 1c 语言 c 和c 已经成为在商业软件的开发领域中使用最广泛的语言 它们为程序 员提供了十分灵活的操作 不过同时也牺牲了 定的效率 与诸如v i s u a lb a s i c 等语言相比 同等级别的c c h 应用程序往往需要更长时 白j 来丌发 由于c c 语言 的复杂性 许多程序员都试图寻找一种新的语言 希望能在功能与效率之间 找到一个更为理想的权衡点 目前有些语言 以牺牲灵活性的代价来提高效率 可是这些灵活性正是c c 十 程序员所需要的 这些解决方案对编程人员的限制过多 如屏蔽一些底层代码控 制的机制 其所提供的功能难以令人满意 这些语言 无法方便地同早先的系统 交互 也无法很好地和当前的网络编程相结合 对于c c 用户来说 最理想的解决方案无疑是在快速开发的同时又可以调 用底层平台的所有功能 他们想要一种和最新的网络标准保持同步并且能和已有 的应用程序良好整合的环境 另外 一些c c 丌发人员还需要在必要的时候进 行一些底层的编程 c 拌 cs h a r p 8 j 是微软对这一问题的解决方案 c 是一种最新的 面向对象 的编程语言 它使得程序员可以快速地编写各种基于m i c r o s o r n e t 平台的应用 程序 m i c r o s o r n e t 提供了一系列的工具和服务来最大程度地丌发利用计算与 通讯领域 正是由于c 拌面向对象的卓越设计 使它成为构建各类组件的理想之选 无论是高级的商业对象还是系统级的应用程序 使用简单的c 群语言结构 这些 组件可以方便的转化为x m l 网络服务 从而使它们可以由任何语言 在任何操作 系统上通过i n t e m e t 进行调用 最重要的是 c 舟使得c 程序员可以高效的开发程序 而绝不损失c c 原有的强大的功能 9 1 因为这种继承关系 c 撑与c c 具有极大的相似性 熟悉 类似语言的开发者可以很快的转向c 撑 新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁 丌发者必须 不断缩短丌发周期 不断推出应用程序的新版本 而不仅仅是丌发一个 标志性 的版本 5 第2 章远辟实时交且敦 学系统应心的土要技卞 c 群在设计时就考虑了这些问题 它使开发者用更少的代码做更多的事 同时 也不易出错 新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标 准 例如h t m l x m l s o a p 等 现存的丌发工具往往都是早于i n t e m e t 出现 的 或者是在我们所熟知的网络还处于孕育期时出现的 所以 它们一般无法很 好地支持最新的网络技术 c 牟程序员可以在m i c r o s o f t n e t 平台上事半功倍的构建应用程序的扩展框架 c 包含了内置的特性 使任何组件可以轻松转化为x m l 网络服务 通过i n t e m e t 被任何操作系统上运行的任何程序调用 更突出的是 x m l 网络服务框架可以使现有的x m l 网络服务对程序员来说 就和c 对象一样 这样 程序员就可以方便地使用他们已有的面向对象的编程 技巧来开发利用现有的x m l 网络服务 还有一些精细的特性 使得c f 成为一流的网络编程工具 例如 x m l f 逐 渐成为在网络上传输结构化数据的标准 这种数掘集合往往非常小 为提高性能 c 拌允许把x m l 数据直接映射到s t m c t 数据类型 1 0 而不是c l a s s 这样对处理少 量的数据非常有效 即使是专家级的c 程序员也常会犯一些最简单的小错误 比如忘了初 始化变量 但往往就是这些小错误带来了难以预料的问题 有些甚至需要很长时 问来寻找和解决 一旦一个程序作为产品来使用 就算最简单的错误纠 f 起来也 可能要付出极其昂贵的代价 c 的现代化设计能够消除很多常见的c 编程错误 例如 1 资源回收减轻了程序员内存管理的负担 2 c j f j 中变量由环境自动初始化 3 变量是类型安全的 这样 程序员编写与维护那些解决复杂商业问题的程序就更方便了 c 群语言对版本的更新提供内在的支持降低了丌发成本 更新软件组件是一项 很容易出错的工作 因为代码的修改可能无意间改变原有程序的语义 为协助丌 发者进行这项工作 c 拌为版本的更新提供内在的支持 例如 方法重载必须显 式声明 这样可以防止编码错误 保证版本更新的灵活性 还有一个相关的特性 就是对接口和接口继承的内在支持 这些特性使得c j f j f 可以丌发复杂的框架并且 随着时间不断发展更新它 总体来说 这些特性使得丌发程序项目的后续版本的过程更加健壮 从而减 少后续版本的开发成本 企业的商业计划要付诸现实 必须在抽象的商业过程和实际的软件实现之间 6 第2 章远陧实时交一吐敦学系统屯删的士耍技术 建立紧密地对应 不过大多数语言都很难做到这点 例如 如今的程序员们一般 使用代码注释来注明哪个类对应于某个抽象的商业对象 c f 语言 允许类型定义的 扩展的元数据 这些元数掘可以应用于任何对象 项目构建者可以定义领域特有的属性并把他们应用于任何语言 元素 类 接口等 等 然后 开发人员可以编程检查每个元素的属性 这样 很多工作都变得方便 多了 比如编写一个小工具来自动检查每个类或接口是否被币确定义为某个抽象 商业对象的一部分 或者只是创建一份基于对象的领域特有属性的报表 定制的 元数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现的之 间的对应关系 作为一种自动管理的 类型安全的环境 c 桴适合于大多数企业应用程序 但 实际的经验表明有些应用程序仍然需要一些底层的代码 要么是因为基于性能的 考虑 要么是因为要与现有的应用程序接口兼容 这些情况可能会迫使丌发者使 用c 即使他们本身宁愿使用更高效的开发环境 c i 采用以下对策来解决这一问题 1 2 1 内置对组建对霖模型 c o m 和基于w i n d o w s 的a p i 的支持 2 允许有限制地使用纯指针州a t i v ep o i n t e r 在c 拌中 每个对象都自动生成为一个c o m 对象 丌发者不再需要显式的实 现i u n k n o w n 和其他c o m 接口 这些功能都是内置的 类似的 c f 可以调用现 有的c o m 对象 无论它是由什么语言 编写的 c 群包含了一个特殊的功能 使程序可以调用任何纯a p i 在一段特别标记的 代码中 丌发者可以使用指针和传统c c 十 特性 如手工的内存管理和指针运算 这是其相对于其它环境的极大优势 这意味着c f 程序员可以在原有的c c 代 码的基础上编写程序 而不是彻底放弃那些代码 无论是支持c o m 还是纯a p i 的调用 都是为了使开发者在c 环境中直接揣有 必要的强大功能 c 拌是一种现代的面向对象语言 它使程序员快速便捷地创建基于 m i c r o s o r n e t 平台的解决方案 这种框架使c 撑组件可以方便地转化为x m l 网 络服务 从而使任何平台的应用程序都可以通过i n t e m e t 调用它 c 群增强了开发者的效率 同时也致力于消除编程中可能导致严重结果的错误 c j f j 使c c 程序员可以快速进行网络开发 同时也保持了开发者所需要的强大 性和灵活性 由于c f 具有丌发速度快 灵活性大 功能强大等特点 本文采用c j f 作为远 程实时交互教学系统的 丌发语言 7 第2 辜远f 笔实时交互教 学系统声剧的主要技术 2 2x m l 语言 x m l 1 4 是英文e x t e n s i b l em a r k u pl a n g u a g e 的缩写 它的中文意思是 可扩 展标记语言 x m l 文档以 x m l 为后缀 编写一个x m l 文档 不需要特别的软件 只 需要一个文本编辑器就呵以 比如记事本程序 n o t e p a d 可以打开n o t e p a d 按照x m l 格式输入内容 然后存成以 x m l 为后缀的文 件 比如b o o k x m l 然后存盘 这样就生成了一个x m l 文档 以下面的代码 为例 t l e t h eb o o kt h i e f 2 5 1o 可以使用i e 或者f i r e f o x 浏览器打开并浏览x m l 文件 我们可以通过这个x m l 文档的例子对x m l 有个初步的认识 该x m l 文档的第一行是x m l 声明 定义了x m l 的版本和使用的字符 编码 在这个例子中 x m l 遵守的版本是1 o 使用的字符编码是u t f 8 字 符集 该x m l 文档有一个根元素 r o o te l e m e n t f 1 5 叫做b o o k s b o o k s 根元素下 又有3 个元素 分别是t i t l e p r i c e q u a n t i t y 每个x m l 元素都以 个起始标记 o p e n i n gt a g 开始 以一个结束标记 c l o s i n gt a g 收尾 标记表示这个元素内的数据是书名 t h eb o o kt h i e f 比如 就是一个起始标记 就是一个结束标记 起始标记以 结束 结束标记以 结束 x m l 元素可以带有属性 属性值要加引号 比如i s b n 就是b o o k s 的属性 属性值为9 7 8 7 5 4 4 2 3 8 2 1 2 x m l 的标记 t a g 是可以自定义的 1 6 用来描述数据 比如该例子中的t i t l e 元素 t h eb o o kt h i e f t i t l e 标记表示这个元素内的数据是书名 t h eb o o kt h i e f 就是一个具体书名 由于x m l 的标记可以随意定义 我们可以用x m l 描述和存储各种内容的 r 第2 章远f 实时交且教学系统应州的士要技术 数据 这旱举的只是一个有关书的x m l 文档例子 我们还可以创建其它x m l 文档 比如有关电影的 或者家具的 等等 也就是说 各种内容的数据 都可 以通过x m l 描述和存储起来 x m l 文档是一棵节点树 一个x m l 文档只有一个根节点 在该例子中 b o o k s 就是根节点 b o o k s 下面有子节点t i t l e p r i c e q u a n t i t y 根据上面的例子 我们对x m l 有个大致的了解 总的来说 有以下几个要 占f 7 x m l 是一种可扩展的标记语言 e x t e n s i b l em a r k u pl a n g u a g e x m l 的标记 t a 曲没有被预定义 用户可以自行定义标记来描述数据 x m l 主要用来描述和存储数据 x m l 具有自我描述性 x m l 是树状结构的文档 是个结构化的文档 x m l 文档是个文本文件 使用x m l 具有以下几点好处 易携带和传输 x m l 文档不依赖于特殊的软件 只要有个文本编辑器 就可以编写x m l 文 档 而且是存成文本格式 一个x m l 文档就是一个小小的文本文件 易于携 带和传输 易于共享和跨平台 x m l 本身是个文本文件 而且是有结构化的数据 很容易被各系统读取 易于查询 因为x m l 是树状结构 易于查询 基于x m l 具有以上多种优点 本文开发的远程实时交互教学系统的配置文 件采用x m l 语言 作为标准格式 2 3g dl 从本质上来看 g d i 为开发者提供了一组实现与各种设备 例如监视器 打 印机及其它具有图形化能力但不及涉及这些图形细节的设备 进行交互的库函数 g d i 的本质在于 它能够替代开发人员实现与例如显示器及其它外设的交互 2 i j 而从开发者角度来看 要实现与这些设备的直接交互却是一项艰巨的任务 图2 1 展示了g d i 在丌发人员与上述设备之l 日j 起着重要的中介作用 其中 g d i 为我们 包办 了几乎一切一从把一个简单的字符串 h e l l o w 研l d 打印到控 制台到绘制直线 矩形甚至是打印一个完整的表单等 第2 荦远f 实时交且教学系统声 j 的士要技术 融 三二二 汇互 图2 1g d i 的重要作用 那么 g d i 是如何工作的呢 为了弄清这个问题 让我们来分析一个示例一 绘制一条线段 实质上 一条线段就是一个从一个开始位置 x 0 y 0 到一个结束 位置 x n y n 的一系列像素点的集合 为了画出这样的一条线段 设备 在本例 中指显示器 需要知道相应的设备坐标或物理坐标 然而 丌发人员不是直接告诉该设备 而是调用g d i 的d r a w l i n e 方法 然后 由g d i 在内存 即 视频内存 中绘制一条从点a 到点b 的直线 g d i 读取点a 和点b 的位置 然后把它们转换成一个像素序列 并且指令监视器显 示该像素序列 简言 之 g d i 把设备独立的调用转换成了一个设备可理解的形 式 或者实现相反方向的转换 g d i 是w i n d o w sx p 中的一个子系统1 2 2 j 它主要负责在显示屏幕和打印设备 输出有关信息 它是一组通过c 类实现的应用程序编程接口 顾名思义 g d i 是以前版本g d i 的继承者 出于兼容性考虑 w i n d o w sx p 仍然支持以前版本 的g d i 但是在丌发新应用程序的时候 开发人员为了满足图形输出需要应该使 用g d i 因为g d i 对以前的w i n d o w s 版本中g d i 进行了优化 并添加了许多 新的功能 作为图形设备接口的g d i 使得应用程序开发人员在输出屏幕和打印机信息 的时候无需考虑具体显示设备的细节 他们只需调用g d i o 库输出的类的一些方 法即可完成图形操作 真 f 的绘图工作由这些方法交给特定的设备驱动程序来完 成 g d i 使得图形硬件和应用程序相互隔离 从而使丌发人员编写设备无关的应 用程序变得非常容易 g d i 相对于g d i 具有以下新增功能1 2 3 j 1 渐变的笔刷 g r a d i e n tb r u s h e s g d i 允许用户创建一个沿路径或直线渐变的笔刷 来填充外形 s h a p e s 路径 p a t h s 区域 r e g i o n s 渐变笔刷同样也可以画直线 曲线 路径 当我们用一 1 0 二 l 第2 章远程实时交互教学系统麻刚的土要技术 个线形笔刷填充一个外形 s h 印e s 时 颜色就能够沿外形逐渐变化 其效果如图 2 2 所示 寺犬 图2 2 渐变笔刷 2 基数样条函数 c a r d i n a ls p l i n e s g d i 支持基数样条函数 而g d i 不支持 基数样条是一组单个曲线按照 一定的顺序连接而成的一条较大曲线 样条由一系列点指定 并通过每一个指定 的点 由于基数样条平滑地穿过组中的每 个点 不出现尖角 因而它比用直 线连接创建的路径更精确 图2 3 是分别使用两种方法创建的图形 一个使用基 数样条 一个使用直线 图2 3 基数样条函数与直线对比图 3 持久路径对象 p e r s i s t e n tp a t ho b j e c t s 在g d i 中 路径属于设备描述表 d c 画完后路径就会被破坏 在g d i 中 绘图工作由g r a p h i c s 对象来完成 我们可以创建几个与g r a p h i c s 分丌的路 径对象 绘图操作时路径对象不被破环 这样你就可以多次使用同一个路径对象 画路径了 f 4 变形和矩阵对象 t r a n s f o r m a t i o n s m a t r i xo b j e c t g d i 提供了矩阵对象 一个非常强大的工具 使得编写图形的旋转 平移 缩放代码变得非常容易 一个矩阵对象总是和一个图形变换对相联系起来 比方 说 路径对象 汀h 有一个t r a n s f o r m 方法 它的一个参数能够接受矩阵对 象的地址 每次路径绘制时 它能够根据变换矩阵绘制 图2 4 是一个图形变换 前后的例子 变换按照先缩放后旋转完成 第2 章远祥实时交互教学系统廊川的主要技术 图2 4 变形和矩阵对象 5 可伸缩区域 s c a l a b l er e g i o n s g d i 在区域 r e g i o n s 方面对g d i 进行了改进 在g d i 中 r e g i o n s 存储 在设备坐标中 对r e g i n s 唯一可进行图形变换的操作就是对区域进行平移 而 g d i 用世界坐标存储区域 r e g i o n s 允许对区域进行任何图形变换 譬如如图 所示的缩放 图形变换以变换矩阵存储 图2 5 展示的是一一个区域变换前后的 例子 缩放 旋转 平移 图2 5 可伸缩区域 6 a l p h ab l e n d i n g 混合 如图2 6 显示的图形 红色未平移区域与变换后区域有一部分交叉区域 这 一部分形成的特殊效果就是由g d i 支持的a 1 p h ab l e n d i n g 混合 实现的 利用 a l p h ab l e n d i n g 可以指定填充颜色的透明度 透明颜色与背景色相互融合 填 充色越透明 背景色显示越清晰 如图2 6 所示的四个椭圆被填充了同样的颜色 但由于拥有不同的透明度而呈现不同的显示效果 黛謦曩i 攥慧黧 图2 6a l p h ab l e n d i n g 第2 章远稃实时交且敦学系统席川的土要技术 7 多种图像格式支持 图像在图形界面程序中占有举足轻重的地位 g d i 除了支持b m p 等g d l 支持的图形格式外 还支持j p e g j o i n tp h o t o g r a p h i ce x p e i r t sg r o u p g i f g r a p h i c si n t e r c h a n g ef o n n a t p n g e x c h a n g e a b l ei m a g ef i l e t i f f 1 1 a gi m a g e f i l ef o r m a t 等图像格式 可以直接在程序中使用这些图片文件 而无需考虑它 们所用压缩算法 8 其它 g d i 还将支持其它技术 譬如重新着色 颜色校 f 元数据 图形容器 也 许这些功能我们会在将来的w i n d o w s x p 或者m i c r o s o rv i s u a l s t u d i o n e t 中看到 g d i 编程模式进行了一些改变 这罩我们要注意以下几个名词 d e v i c e c o n t e x t s 设备描述表 h a n d l e s 句柄 和g r a p h i c s0 b i e c t s 图形对象 如果曾经使用过g d i 编写过应用程序 我们肯定对设备描述表 d c 的概 念非常熟悉 设备描述表是w i n d o w s 使用的一个数据结构 用于存储具体设备能 力和与如何在设备上重绘一些项目的有关属性信息 而且视频设备的设备描述表 还与特定的窗口有关 首先我们必须获得一个设备描述表句柄 然后在图形绘制 时 我们把这个句柄作为一个参数传递给g d i 图形绘制函数 当然我们也可以 把它传递给获得或设置设备描述表有关属性的函数 利用g d i 函数 我们不必使用句柄或者设备描述表 相反 我们可以简单 地创建一个图形对象 g r a p h i c s 然后以我们熟悉的面向对象的编程方式调用它 的方法即可 譬如m y g r a p h i c s o b j e c t d r a w l i n e p a r a m e t e r s g r a p h i c s 对象是g d i 的核心 正如设备描述表是g d i 的核心一样 设备描述表 d c 和图形对象 g r a p h i c s 在不同的环境下扮演着同样的角色 发挥着类似的作用 但是两者 也存在着这质的不同 前者使用基于句柄的编程方法而后者使用面向对象的编程 方法 图形对象和设备对象一样 与屏幕的显示窗口有关 它包含着与项目重绘有 关的属性信息 譬如平滑度 然而图形对象并没有像g d i 那样与p e n 画笔 p a t h 路径 i m a g e 图像 f o n t 字体 等搅在一起 在g d i 中 所有与绘图有 关的绘图对象必须选入指定设备描述表中 使用s e l e c t o b i e c t 函数 才能被指 定的设备描述表所使用 而在g d i 中 我们只需把这些绘图对象作为一个参数 传递给图形对象g r a p h i c s 方法调用即可 每一个图形对象所使用的绘图工具至于 它调用方法使用的参数有关 它可以通过参数使用多种p e n 和b r u s h 绘图 而不 是与特定的笔和面刷联系在一起 c j f j 语言完全支持g d i 的全部功能 故本文的远程实时交互教学系统中涉及 到图形操作的部分选用g d i 作为实现手段 1 3 第2 萋远f 实时交 盐敦学系统书川的士要技术 2 4w m e n c o d e r w i n d o w sm e d i ae n c o d e9 f 2 4 是w i n d o w sm e d i a9s e r i e s 组成部分之 它的主 要作用是进行编码 w i n d o w sm e d i a9s e r i e s 包括了w i n d o w sm e d i aa u d i o9 s e r i e s w i n d o w sm e d i av i d e o9s e r i e s w i n d o w sm e d i ae n c o d e r9s e r i e s w i n d o w s m e d i as e r v i c e s9s e e s w i n d o w sm e d i ap l a y e r9s e r i e s w i n d o w sm e d i ar i g h t s m a n a g e r9s e r i e s w i n d o w sm e d i a9s e r i e ss d k 基于这个平台 丌发者可以利 用播放器 解码器以及服务器端配合丌发出数字媒体应用程序 通过与w i n d o w s 家族的最新成员 w i n d o w sx pm e d i ac e n t e re d i t i o n 配合 能够给用户带来更流 畅的数码娱乐体验 以上是微软的一些产品 由微软提供给我们 让我们可以进行丌发的是 w i n d o w sm e d i a9s d k s d k 是软件丌发工具包s o f t w a r ed e v e l o pk i t s w i n d o w s m e d i a9s d k 主要包括 w i n d o w sm e d i ap i a y e rs d k w i n d o w sm e d i af o n n a ts d k w i n d o w sm e d i ar i 曲t sm a n a g e rs d k w i n d o w sm e d i ae n c o d e rs d k w i n d o w sm e d i as e r v i c e ss d k 我们可以使用w i n d o w sm e d i ae n c o d e rs d k 开发自己的编码应用 微软的 w i n d o w sm e d i ae n c o d e r w i n d o w sm e d i a 编码器 就是使用w i n d o w sm e d i a e n c o d e rs d k 进行开发的 编码应该如何理解呢 或者说编码器应该具有什么功能呢 将设备或者文 件中的流媒体采集到并按照微软的媒体格式进行编码 并输出 这就是编码器的 作用吲 用更加直白的话来说就是采集 格式转换 压缩 w j n d o w sm e d i ae n c o d e r 的源可以是设备也可以是文件 设备可以是屏幕或 者摄像头或者其他的视频 音频设备 文件可以是视频文件 音频文件 w i n d o w s m e d i ae n c o d e r 的输出可以将内容

温馨提示

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

最新文档

评论

0/150

提交评论