基于SMIL的多媒体课件制作工具的研究

来源:互联网 发布:北京梨园淘宝城 编辑:程序博客网 时间:2024/04/26 05:16
[本文仅供学习,如挪做它用,请自行负责]
基于SMIL的多媒体课件制作工具的研究
孙辨华 黄 微 李树芳 崔光佐
北京大学现代教育技术中心 北京 100871 sbh@cai.pku.edu.cn
【摘 要】
本文首先指出Web常用的HTML的弱点,叙述了XML的特点与优点.然后,对同步多媒体合成语言SMIL作了较为详细的说明,包括SMIL 1.0规范和SMIL 2.0改进的10大功能模块. 第三部分,阐述了一个基于SMIL的多媒体课件制作工具的实现.文章最后指出,XML是现代教育技术中一项重要的关键技术.
本文对于研制开发教育资源库系统平台具有参考价值.
【关键词】XML HTML SMIL 课件 教育技术 远程教育
引言
随着计算机网络技术,Web技术,多媒体技术的发展,教育领域正在发生着"革命"性的变化.现代教育技术已成为全球网络应用研究的热点课题之一.
教育资源建设是教育技术应用中的一个核心问题.而对教育资源的描述,存储,检索,互操作,特别是对多媒的集成与同步,实现起来比较复杂与困难.近来,通过对XML的研究,并通过"多媒体课件开发平台","网络多媒体实时教学系统(实时的音,视频交互)"等一系列的实践,我们体会到XML是现代教育技术中的一项关键技术.有人称XML是引导下一次Web"革命"的技术,并不为过.
二,HTML与XML
1,HTML的弱点
HTML是SGML的一个应用,在Internet的发展史上,占有光辉的一页,在推动全球信息化方面,起到了重要作用.当前,许多人都在使用它.但随着技术发展和推广应用,越来越暴露了它的弱点:
HTML是专门为描述主页而设计的语言.它将信息内容,文档结构和显示格式混在一起,不仅难于阅读,也不利于计算机处理;更不适应于信息检索和存档要求;
HTML语言表达能力有限;它对矢量图形,化学,数学等多学科的科技符号,以及其它的特殊显示效果不能表达,限制了它的应用与发展;
HTML是一种纯置标语言,随着应用的不断拓展,标记符也在不断地扩大,日渐臃肿;并且,标记定义不够严谨规范,文档结构混乱,缺乏条理;
浏览器越来越复杂,降低了系统的时空效应.
2,SGML语言
SGML(General Standard Marcup Langueg)是一个功能非常强大的元置标语言.它由四部分组成:SGML文档,相应的文档类型定义文档DTD(Document Type Definition),解析程序(Parser),和相应的显示风格(DSSSL)文档,核心是DTD.利用DTD可以自由地定义文档的标记及其结构.
80年代, SGML悄然兴起,鉴于SGML的复杂性,很少厂商对开发它的浏览器感兴趣;虽有一两家产品,但价格昂贵.因此,SGML并未真正推广开来.
3, XML的特点与优点
到了90年代,网络技术崛起以及Internet迅速流行,人们试图寻求一种办法,解决SGML
过于复杂,而HTML又过于简单并且有不少弱点的问题,这就产生了XML.
XML经过对SGML的精简,略去了许多SGML中复杂而不常用的部分,在易懂,易用及对Web的适应性方面做了较大的改进,同时也保留了其文档可被解析程序解析和校验的特性.


XML由三个基本部分组成:
XML(Extensible Markup Language);
XSL(Extensible Style Language);
XLL(Extensible Linking Language).
XML有如下特点:
它是一种功能强大的元语言
它的文档数据内容与格式分离
XML的核心是数据信息
格式良好,遵循严格语法规则
XML支持UNICODE
XML有许多优点(它们会对现代教育产生极大影响):
具有良好的可扩展性
各行各业各学科的要求不同,如能有一套标记都能适合则最好,但一是困难,二无必要.于是,定义不同需要的标记语言被提到日程上,XML就能够胜任之.
事实上,已经出现了适用于数学,化学,多媒体集成与同步的MathML,CML,SMIL以及适用于手机和其它手持设备的WML(Wirelesss ML)和HDML(Handheld Device ML)等语言.它们应用于不同的领域,但都遵循XML标准.
(2) XML的数据具有自我描述性
先看XML文档中的几条语句:
鲁迅----作者"鲁迅"
中华人民共和国
世界华人联合会
这里,标签反映主题,与内容一致;另外,XML支持UNICODE,用户可在DTD中任意定义标签,可使得XML文档简单,易懂,易操作.而HTML的标签只能是ASCII串,固定,有限.
如搜索引擎对"华人"抽取,在HTML中,必须遍历全文,去掉标签并进行分析;而
在XML中,根据标签意义很容易找到它.因此,可以说XML为搜索引擎增加了"智能".
(3) XML的数据与显示格式分离
在XML中,根据DTD定义标签,规定结构(树型结构),可以容易地建立文档;该文档仅包含了反映主题的标签和真正内容的数据,而不包括显示格式.XML文档是一个纯正文文档.如此带来了一系列好处.
人们可以方便地编写XML文档,无须考虑显示格式,简单易行.
XML文档可以根据不同的需要,由XSL定制输出格式,一套内容多种输出;显示更丰富,快捷,实用.例如XML文档可以输出HTML格式,也可以输出WORD格式.又如,同一课程,可对不同的学习对象输出简繁不同的内容;加之XML具有过滤功能,可以将包括考试题和答案的XML文档,只向学生输出考试题而不含答案.
(4) 可以集成不同的数据源
XML可以建立多层Web应用;Web应用层可以由中间层程序将XML表示的数据(Web页,数据库)组合起来,交给客户端或下一步应用层.
XML语言还提供客户端包含机制,可以将多来源的数据集成到一个文档中显示.
(5) 强大的网际信息交换工具
这是一个最令人激动的功能.对存在于不同平台(如UNIX,Windows NT等)的XML文档,
特别便于交换,具有很强的适应性,是一个理想的网际交换语言.
(6) 具有良好的保值性和可持续发展性
对于一些需要长期保存或称需要社会记忆的文档,如政府文档,公文,科学研究报告等,
利用现有的格式文件如WORD文档,再过50--100年,到那时的软件不一定能读它.但是, XML容易做到;即使部分文件被破坏,其余部分也还能被读取.
(7) 运行高效
XML的分析器建立在客户端,对传来的数据进行解析和操作(如编辑,排序).XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据,数据计算不需要回到服务器端就能进行.合理地分配了客户端和服务器端的负担,减轻了网上传输压力.
(8) 结构严谨
如前所说,XML文档根据它的DTD形成,而DTD可被"随心所欲"地建立;但一旦确定,就一定要遵循它的规则,系统要对文档进行严格的语法检查,保证文档是"结构良好"的.所谓"结构良好"是指:
文档必须从声明开始 ;如
根元素必须唯一,嵌套所有后代元素
标记必须闭合;空标记一定以"/>"闭合;
标签层层嵌套不能交叉
标签对大小写敏感
属性值必须使用引号
使用5个特殊符号时,必须采用实体引用
(9) 强大的超链接功能
HTML也有超链接功能,但它只能指向单一文档,如果指向文档内某点,必须加入定位标志(对别人的文档则无权);文档的超连接是单向行为,只知指向谁,被指者则不知是谁指来.XML利用XLL和Xpointer很好地解决了这一问题.而且还解决了多目标链接的问题.
三, SMIL
使用流媒体,建立"Web虚拟课堂",产生"面对面"的教学效果,以便将我国代代名师,名课精湛的教学实践和经验,存储加工建设成教学资源库,并将其进行科学地管理,永久地保存,充分地利用,对开展网络教学,远程教育具有重要意义.同步多媒体集成语言SMIL(Synchronized Multimedia Integration Language)是解决该类问题的一个有效的技术.
1, SMIL的目标
1998年由W3C推荐了SMIL1.0.它是由XML定义并与其完全兼容的标记语言.它可把文本,静止图像,音频,视频等媒体内容组合在一起.SMIL1.0规范,对描述同步多媒体演示文档作了详细的规定,主要包括3个方面:
描述演示的空间布局;
描述演示的时间行为(如同步);
如何为各个媒体对象添加超链接.
2, SMIL文档的结构
XML文档是一个树型结构,它由一个根元素和若干个枝元素(可有子元素)及叶组成.
SMIL文档的根元素是SMIL元素,它可以有一个id属性,用以表示这个SMIL元素,属性的值必须是一个标准的XML标识符.SMIL文档的结构如下:
(1) Smil的头元素head
head用于描述演示中的空间布局,有一个id属性,用以标识该元素;子元素如表.
元素名
作用
允许出现次数
layout
描述演示的空间布局
1次
switch
选择不同的布局语言
1次
meta
定义文档的各种属性
多次
Layout:包含子元素root-layout (规定根元素布局),region (规定各个区域布局).
root-layout是空元素,属性包括:
id(区域标识),title(区域标题),background-color(背景颜色),height(区域高度),width(区域宽度),skip-content(是否忽略子元素内容(预留))
region元素的属性:
id(区域标识),title(区域标题),background-color(背景颜色),top(顶部位置),left(左边位置),height(区域高度),width(区域宽度),fit(区域尺寸同对象尺寸的适配规则,有fit,hidden,meet,scroll和slice),z-index(Z轴索引值),skip-content(是否忽略子元素内容)
(2) SMIL的文档体元素body
body元素包含了SMIL演示的时间和链接行为的信息,显示图片或播放声音开始时间,哪段媒体对应于哪个链接.Body用id属性标识该元素.
body元素的子元素
元素名
作用
允许出现次数
ref
通用媒体对象
任意次
animation
动画
任意次
audio
音频
任意次
img
图片
任意次
text
文本
任意次
textstream
文本流
任意次
video
视频
任意次
seq
序列元素
任意次
par
并列元素
任意次
switch
选择元素
任意次
a
超链接
任意次
ref,animation,audio,img,text,textstream,video统称为媒体元素.seq和par是同步元素.switch用来选择符合条件的分支.a元素用来指定超链接.
3, 若干重要元素简介
(1) 同步元素
SMIL的同步元素用来同步各种媒体对象,par元素的所有子元素都以并行形式播放,而seq元素则以顺序形式播放.
par和seq元素的属性:
Id(同步元素标识),title(元素标题),abstract(内容简述),author(作者信息),copyright(版权信息),begin(开始时刻),end(结束时刻),dur(持续时间),endsync(仅存在于par元素中,par元素同步结束方式),repeat(重复次数),region(展示区域)等.
par和seq元素可以包含的子元素与body元素相同.
body元素的一个简单例子:
在这个SMIL文档的body元素中,定义了并行播放的三幅照片,一段文字字幕以及一段背景音乐,图1 是这段SMIL文档播放的情况.
图1 SMIL文档播放的情况.
(2) SMIL1.0的时间模型
在par和seq元素中,begin,end,dur,endsync,repeat用来指定演示时序行为.
begin,end用来显示地指定播放多媒体对象的起始,终止时间.
dur用来显示地指定播放媒体对象的持续时间,它是一个时钟值.
endsync用来指定par元素的结束同步时间.
repeat用来指定元素的重复播放次数,取整值,或 "indefinite"表示无结束时间.
(3) 媒体对象元素
媒体对象元素,以URI的形式包含在SMIL文档中.媒体对象的属性如下:
id(元素标识),src(媒体对象的URI),abstract(内容简述),author(作者信息),copyright(版权信息),region(显示区域),fill(同步处理模式),begin(开始时间),end(结束时间),dur(持续时间),clip-begin(剪辑开始位置),clip-end(剪辑结束位置),alt(替代文本),longdesc(替代内容的URI)等.
媒体对象可以拥有的子元素是anchor,用来在媒体播放过程中添加超链接.
(4) swith元素
switch可根据具体情况选择不同的元素,实现对不同用户的设置(带宽,语言或偏好).switch元素的选择通过对每个元素的test属性实现,test属性返回布尔值,若返回的值是false,则浏览器忽略该元素.利用这些测试属性可方便为用户定制SMIL文档.
(5) 超链接元素
超链接元素如同html中的超链接,使得用户可以由一段媒体链接访问到其他对象,SMIL 1.0只提供内嵌的链接元素,链接仅限于单向单端的,所有链接都由用户激活.
SMIL超链接元素有两种,a元素和anchor元素.a元素与HTML4.0的a元素非常类似,只是增加了一个"show"属性,用来规定当链接激活时,浏览器是覆盖,新建窗口,还是暂停原来的播放.a元素提供了作用于整个媒体的链接,而使用anchor元素可以实现将一个链接与一个媒体对象的局部相关联.
4, SMIL的发展
2001年3月1日,W3C发布了SMIL 2.0最新版.它除了对SMIL 1.0继承,扩展外,还引用了能够让SMIL语句在其他基于XML的语言中重用的特性.这是一个很有用的特性,扩展了多媒体的应用范围,对于制作课件非常有用.
SMIL 2.0规范,通过定义一系列模块(module)来实现.通过一个配置描述(profile)将不同的模块组合起来解决一个特定的问题;这样可以更加灵活地适应不同系统和设备的要求.目前,SMIL将整个规范的功能划分为10大模块:
(1)动画模块
提供了将动画集成到一个统一的时间轴并把不同动画效果进行组合的框架.
(2)内容控制模块
提供了基于一系列测试属性选择内容的框架,它主要定义了switch元素的语义,此模块增加了开发者自定义测试的属性,允许定义媒体优先级以及提供对象预下载的支持.
(3)布局模块
包括所有定义播放区域大小和位置的元素,对应于SMIL 1.0中的layout元素,唯一的扩展是增加了对于分层式区域的支持.
(4) 连接模块
定义了如何在SMIL文档中使用由用户激活的超链接,它提供了对Xpointer的支持,并用HTML 4.0的标签替代了SMIL 1.0中的.
(5) 媒体对象模块
定义了描述各种媒体对象的元素和属性,包括ref,animation,audio,img,video,text和textstream,SMIL 2.0改动并增加了它们的一些属性,新增了子元素rtpmap以加入对于实时传输协议(RTP)的支持,增加了对于扩展媒体播放器的支持.
(6) 元信息模块
定义了如何描述SMIL文档的资源,SMIL 2.0增加了元素,并采用资源描述框架(Resource Description Framework)的模型和语法来描述元信息.
(7) 结构模块
规定了SMIL文档的结构,即SMIL元素,head元素和body元素的DTD,这部分与SMIL 1.0向后兼容.
(8) 计时和同步模块
该模块用来提供同步各种多媒体内容的功能.SMIL 2.0作了许多扩展:新增了excl元素作为时间容器;新增了基于事件的交互计时,支持时间操纵等等.另外,SMIL 2.0还规定了如何将SMIL计时模块应用于其他的XML文档中.
(9) 过渡效果模块
定义了一系列过渡类型(如扫视,淡入等等),用来衔接不同媒体之间的过渡.
(10)计时控制模块
该模块加入了新的属性来控制时间行为.例如控制某一媒体形式的播放速度或比率.尤其适用于对动画,非线性或离散媒体的控制.
最后,SMIL 2.0还增加了SMIL DOM接口的定义,以更加方便地对SMIL文档或者带
有SMIL功能的XML/HTML文档进行操作.
四, 一个 SMIL Editor的设计与实现
为制作流媒体课件,我们用SMIL技术研制了一个简单的编辑器.只要把课堂教学实况数字化,经过该编辑器编辑即可.用播放器播放之,就能达到"面对面"的教学效果.
下边简要介绍基于SMIL1.0标准设计的SMIL Editor系统.
系统分为启动,布局,链接,文本编辑,图片编辑,媒体播放等6个视图模块.
开发,运行平台:Windows,Macintosh和Unix等,跨平台的SMIL开发工具,JAVA.
播放器:RealPlayer G2.
1, 启动视图模块
启动视图,通过菜单和按钮的连接来实现对其他各个视图的集成.
用StartFrame类即可实现它的基本功能.StartFrame实现ActionListener(事件监听)和MediaEventListener(媒体事件)监听器类.通过这两个监听器来实现用户指令与程序内部控制的结合.
2, 布局视图模块
该模块由三个对话框和一个显示模板视图组成.
该视图是类PatternChoose的应用实例,通过对两个按钮操作来控制定义布局方式.
缺省定义布局视图
该视图呈现给用户两种常用布局定义方式:
视频文字形
常见的一种方式是把教师在课堂上的实时录像呈现给学生,使有身临其境感;
但是板书往往变得模糊不清,于是需要在录像播放的同时同步地重新定义板书内容.
图片文字形
制作一段短小课件欧洲风光的短片.图2.1中图片文字配上背景音乐就达要求.
用户自定义布局视图(如图2).
为用户提供了个性化制作的布局模板—用户自定义布局视图类ChoosePattern的实例choosePattern.在这个视图中,用户可实现下列各项功能:
通过复选框选择在屏幕中显示的媒体种类:图片,视频,文本等;
通过按钮激活需要操作的媒体窗口;
在画板上显示媒体窗口,同时可以通过对鼠标的监控来修改窗口的大小和位置;
在文本框中也可实现对媒体窗口位置和大小的修改;
定义显示比例,在文本框中定义实际的宽和高.
图2 用户自定义布局视图
3, 链接视图模块
当启动视图中事件监听类ActionListener监听到按钮"Image Import","Text Import","Audio Import"或"Video Import"的指令时,链接视图类的实例就会被调用并产生相应图形用户接口.上面提到的媒体种类虽然各异,但是链接模式基本是相同的.
4, 文本编辑视图模块
我们采用RealText格式来存取文本流.在播放的时候,我们可以点击事先建立好的索引链接来选择播放的片断,不必从头看到尾,也不必靠播放器的播放条来查找想要的内容.
不同于HTML,.
command:seek()函数可以在索引链接被点击的时候设置播放时钟.
RealText提供了设置文字字体,大小,颜色,加粗,倾斜,加下划线等等的功能.
我们设计的文本编辑视图是由两个子视图组成:文本流,文本编辑视图.
文本流编辑视图
文本流编辑视图组合在启动视图中,对它的操作与时间轴密切相关,类TextPanel实现了它的主要功能.程序根据鼠标的移动位置改变鼠标的状态(即形状),提示用户改变文本段显示时间.还可以根据它的位置来给所指的文本段加上提示.
程序中定义了JPpupMenu的实例jTextPopupMenu,并给该弹出式菜单加入项Cut,Copy,Paste,Add,Delete,Delete All和Change Text以及菜单项监听器和执行函数.它们实现文本段的剪切,复制,粘贴,增加,删除,修改,设定文本段显示的起始时间和结束时间等编辑功能.
文本编辑视图
文字信息是用户交流的重要手段,对网络传输要求也很低.为了给学生以深刻的印象,一定要提供给清晰明确的板书.
类StyledEditor实例,实现了对某一文本段的排版处理:设置前,背景色;设置字体及其大小;设置显示形式(加粗,下划线,倾斜);剪切,复制,粘贴.
用Java的JtextPane,StyledDocument,JcolorChooser类,可以实现上述功能.
5, 图片编辑视图模块
图片编辑视图(图4.12)嵌入在启动视图中,它的实现类ImagePanel与文本编辑视图类TextPanel的功能基本相似.它实现了对图片流中图片的剪切,复制,粘贴,增加,删除和更换功能.同时实现了通过对鼠标的监控来规定每幅图片的起始时间和结束时间.
本工具提供了图片之间过渡的几种形式:
从前一幅图片中心位置开始逐渐放大现出(Zoom from Previous Image);
从前一幅图片逐渐朦胧现出(Face from Previous Image);
从屏幕的左侧到右侧逐渐现出(Wipe from Left to Right);
从屏幕的右侧到左侧逐渐现出(Wipe from Right to Left);
从屏幕的上部到底部逐渐现出(Wipe from Top to Bottom);
从屏幕的底部到上部逐渐现出(Wipe from Bottom to Top).
采用RealPix格式来存取图片流.用RealPix不仅可以规定每幅图片的起始时间和结束时间,还可以说明如上面所述的图片从无到有的显现形式.
6, 媒体播放视图模块
为了保证图片,文本信息与音频,视频的统一,用JMStudio类实现预播放音频,视频的功能.Sun公司提供了Java Media Framework(JMF)应用程序接口,用它就可以把音频,视频和其他以时间为基础的媒体加入到Java的应用程序(Application)和小应用程序(Applet)中.它扩展了J2SE开发平台的多媒体功能,是一个强有力的跨平台多媒体开发工具.其中的MediaPlayer类是一个把播放器嵌入到JavaBean控件中的类.通过对它的集成,JMStudio类实现了如下功能:
自动播放:打开文件后是否自动播放;
循环:指定是否循环播放某一媒体;
媒体位置: 即媒体存放地点.它可以是绝对地址,如http://et/demo/media/Sample1.mov,
也可以是相对地址,如media/Sample1.mov;
命名:给播放器指定名称;
位置和大小: 规定播放器在屏幕上的位置和大小;
声音:声音的大小是由0到5五个数字加以区分的.0静音,5最大,缺省定义为3;
视频窗口:规定是否显示视频窗口.
本程序用激发事件以及根据事件来选择方法加以实现.
用户可根据音频视频播放进度调节文本和图片流中各页面的起始时间和结束时间.
图3(1) 应用媒体播放视图实现视频与文本的对应
图3(2) 应用媒体播放视图实现视频与文本的对应
图3中,当视频文件"数学的精神,方法和应用第十一讲"播放到12分34秒时,教师讲到希腊文明,于是在下面的文本流编辑视图中把这一段板书文本的起始时间定位在12分34秒.
四,结论
通过对XML,SMIL的研究及实践,我们感到XML技术是网络教育中的一个重要的关键性技术;它的简单易读性,可扩展性,结构严谨性,强适应性,运行高效性,保值可持续发展性等优点将为我们提供良好的环境.要建设好教育资源库,掌握好XML至关重要.
参考文献
黄 微 基于SMIL的网络多媒体课件制作工具
范国平 新概念XML教程
XML中国论坛 XML实用进阶教程
灯芯工作室著,用XML轻松开发Web网站
[美]Michael Morrison,et al著,陆新年等译 XML揭秘—入门 应用 精通
原创粉丝点击