我们都知道,WWW一向擅长多媒体应用,可以目前的HTML只能处理静态内容,在动态的多媒体方面一直存在着带宽限制及信息的同步问题.在这种情况下,1998年万维网联盟(W3C)正式推荐了同步多媒体综合语言SMIL(Synchronized Multimedia Integration Language).1999年8月3日,在第一个草案的基础上,W3C推出了SMIL Boston版本.2000年6月22日,SMIL Boston版本最新更新。SMIL Boston有了许多重要的扩展,包括可重复使用的模块、通用的动画设计、改良的交互功能以及电视综合功能。
SMIL是XML的一种应用,它使Web开发者只要使用类似于HTML的标记方式,借助于一个简单的文本编辑器,即可很容易地安排网页上的视频、声音及文字各部分的时序,而不需要任何编程.同时,使用SMIL也可显著节省带宽,在同一网页中只有被使用的资料才会下载.因此,许多人认为SMIL是通向更接近于电视的WWW台阶。
SMIL的特点
向电视靠拢
电视节目使用了大量多媒体元素, 其中图像的显示、伴音、文字等必须是同步的。而Web虽然已经是一个多媒体环境,但缺少一种时间上的同步控制机制.例如:"打开音频文件A 的同时打开视频文件B",或是"在音频文件播放完之后显示图像C"等,SMIL可以表述这类信 息,因而可以在Web上创建类似于电视节目的内容。
提高带宽利用率
在电视新闻播放时,大部分屏幕都显示全动态的视频信息,只有一小部分屏幕区域是静 止的.而SMIL的一个显著优点就是它在显示电视内容时,可以尽量避免将低带宽的文本、图 片转换为高带宽的视频,从而降低了对带宽的需求.
简化创作工具
目前,很少有人开发Web上的同步多媒体信息,因为这需要专门的创作工具或者要进行编程.而创建SMIL文件和HTML文件 类 似,只需一个简单的文本编辑器就可完成。开发者可以使用 一些简单的XML元素,不用学习复杂的脚本语言。
促进信息的国际化
SMIL可以满足对多语言的需求。例如:SMIL文件可以在同一页面中包括汉语和英语的音频 文件, 然后根据用户的参数设置自动选择下载中文或英文版本。
与Web体系结构紧密集成
SMIL中包括所有Web用户熟悉的部件,如URL、基 于CSS的页面布局、基于HTML的超链接以及基 于XML的语法。SMIL是W3C推荐的第一个使用XML名域(Namespace)集成新元素的语言,SMIL元 素也可以加入到其他需要同步功能的XML应用中去。
SMIL Boston介绍
SMIL Boston有以下两个设计目标:
1.定义一基于XML的简单语言,可以允许用户编写交互性的多媒体内容.利用SMIL Boston,作者可以描述多媒体内容的临时表现方式,结合媒体对象的超链接以及描述在屏幕上表现的层次.
2.SMIL的语法和语义可以在其它基于XML的语言中重用,尤其是需要表达定时和同步的情况. 例如,SMIL Boston 部件应该能将定时集成到XHTML中.
SMIL Boston被定义为一标记模块的集合,它规定了语义和SMIL特定应用领域的XML语法.所有的模块都有相应的文档对象模块(DOM).
SMIL Boston对SMIL 1.0语法的修正更有利于友好的DOM语法支持. 最显著的是从用连字符连接的的属性名改变为大小写混合(camel case)的属性名,例如:原来的属性名clip-begin变为了clipBegin.SMIL Boston模块没有包含SMIL 1.0 的属性,这样为支持的集成应用减轻了负担. SMIL支持重放"application/smil"文档(或
文档)的应用--文档播放器 必须支持SMIL 1.0的属性名.
SMIL Boston规范包括以下内容:
1.SMIL的模块,这些模块为其它基于XML的语言(如XHTML)提供多媒体特色.SMIL有九个模块,包括:动画模块;内容控制模块;事件模块;层次模块;链接模块;媒体对象模块;元信息(Metainformation)模块;结构模块;时序和同步模块.对于动画、链接和媒体对象和定时同步模块有详细的定义和说明,其他尚在进行之中.
2.将SMIL的时序信息集成到到基于XML的语言(见具体的实例).
3.SMIL文档对象模块(DOM)
SMIL实例
例一:"幻灯片":使用行内时序
考虑一种基于XML的图象列表语言.每一个文件都包括一列指向JPEG图象的索引.在行内说明了图象相互间的时序关系.以下就是这样的一个文件,在表中的每一个图象存在规定的持续时间,然后有下一个图象所代替.但最后一个图象只能持续10秒中的8秒时间,因为已经达到了其父节点规定的总时间.
例二: "增长的列表":使用CSS时序
/* style sheet document "growlist.css": */
.seqtimecontainer { timeLine: seq; dur: 30s}
LI { dur: 10s; }
>
- This is item 1. It appears from 0 to 30 seconds.
- This is item 2. It appears from 10 to 30 seconds.
- This is item 3. It appears from 20 to 30 seconds.
例三:"正方形": 使用时间表
考虑一个用图形语言写成的文件,三个大的正方形排列在一个长方形中,每一个正方形中包含有一个更小的正方形. 我们要能产生一个时间表,安排这些正方形出现不同次序.
要使大的正方形逐个出现,每个正方形出现的同时出现小的正方形,时间表可以这样表示:
注释:外部"窗口"--矩形没有给出明确的时序.在该例中,我们默认意味着不需要起始时间,如果没有明确的持续时间那就无限制延续.
SMIL的支持工具
RealNetworks公司的RealPlayer G2是第一个支持SMIL的商业软件,目前它已能支持大部 分SMIL1.0 规 范.其语言和HTML文件类似,SMIL文件由一个标记开始,并且包含和两部分. 部分包括对页面布局和外观的描述信息,部分包括页面内容及时序信息.成对出现的标记, 如和,写法与HTML文件中的一样。而单独出现的标记,如,必须以/>结 束,这是XML语言所作的语法定义。
基本标记表示同步播放多媒体元素,表示要依次播放,和可以任意相互嵌套以产生特殊 效果。和的时序控制是自动完成的,也就是说,在一个段中,第一个文件播放结束时第二个文 件会立即接着播放。如果你希望对文件进行单独控制,可使用begin、end、dur等特性,以决定何时开始播放及播放多久。
结语
目前,W3C的建议还没有法律上的约束力,但SMIL已经引起了业界的广泛重视。W3C同步多 媒体工作组负责人表示,SMIL一定会获得成功。SMIL是一种正在完善中的语言,但它顺应了家庭娱乐与计算机技术相融合的趋势,拓展了Web的使用范围,必将为今后WWW技术的发展带来深远的影响。