SMIL:同步多媒体集成语言的深入解析
1. 基于结构的定时原语优势
在处理多媒体同步时,使用基于结构的定时原语是一种更优的方法。它能让我们从内容本身推导出时间安排,避免了内容和时间信息的重复。
2. 时间线模型与 SMIL 结构定时
时间线模型在确定性定时条件下,是对连续媒体对象的一种易于理解的表示方式,常用于视频和音频媒体编辑器。然而,在大多数 Web 环境中,它的扩展性不佳。例如,若图像对象延迟到达,或者呈现代理渲染音频缓慢,时间线模型难以维持对象间的顺序。而且,当构建时间线时若不清楚音频项的隐式持续时间,或者对象的持续时间在呈现过程中发生变化,问题会变得更加棘手。另外,当添加内容替换或交互式定时(如鼠标点击后开始下一张幻灯片)时,时间线模型的实用性几乎丧失。
为了给 Web 文档提供更现实的框架,SMIL 基于结构化定时框架,通过定义对象间的结构化关系来确定大部分时间安排。它通过定义逻辑定时层次结构而非精确的时间线来编码时间关系。例如,在一个特定的呈现层次结构中,存在黄色的逻辑并行节点(P0 - P7)和一个蓝色的逻辑顺序节点(S0)。并行组件表示将子组件作为一个单元一起激活,顺序组件则表示按顺序激活子组件。
与时间线只能说明对象的开始时间和持续时间不同,SMIL 层次结构能逻辑地描述对象间的关系:
- 对象 Ci、Ii 和 Li 被视为一个逻辑组,一起调度(即一起开始和结束)。
- Ii 和 Li 的持续时间取决于 Ci 的持续时间。
- 这三个对象在对象 Ci - 1(以及 Ii - 1 和 Li - 1)结束后开始。
这些关系不依赖于任何对象的精确持续时间,我们可以在不了解