SMIL学习
1 SMIL简介 1
1.1 SMIL的用途 1
1.1.1 片断串联 2
1.1.2 异地串联 2
1.1.3 时间控制 2
1.1.4 布局控制 2
1.1.5 多语言支持 2
1.1.6 多带宽支持 2
1.2 SMIL基本知识 2
1.2.1 一个完整的SMIL文件 3
1.2.2 文件分析 3
2 SMIL知识解析 3
2.1 SMIL的基本标记分类 3
2.1.1 元素 3
2.1.2 属性 4
2.1.3 头部标记 4
2.1.4 主体标记 4
2.2 SMIL的基本标记解析 4
2.2.1 基本元素: 4
2.2.2 环境元素: 5
2.2.3 控制流元素: 5
2.2.4 资源元素: 5
2.2.5 时间元素: 5
2.2.6 布局元素: 5
2.2.7 特效元素: 6
3 SMIL支持环境 6
1 SMIL简介
SMIL作为类似XML语言是SGML另一个多媒体播放控制语言, 主要用来进行对于各类多媒体播放的时间以及空间布局方面的控制
1.1 SMIL的用途
整体上面, SMIL就好像一场电影摄制当中的导演, 摄像以及布景, 完成对于整个演示过程当中素材的整理, 剪接和渲染工作, 将”死”的各类材料组合成一场”活”剧.
1.1.1 片断串联
SMIL可以将播放器支持的各类媒体片断文件串联起来成为一个演示整体进行播放
1.1.2 异地串联
作为SMIL的串联对象, 媒体文件可以位于因特网上面可以访问的任何一个角落
1.1.3 时间控制
媒体文件对于SMIL可以进一步进行剪接播放其中的片断并且指定播放时间长度.
1.1.4 布局控制
除了对于媒体文件进行时间和内容上面的控制以外, SMIL还支持对于播放的空间以及附属素材进行控制, 可以支持在播放可控范围的任何一个角落以指定大小形状进行播放, 并且支持各类特效和附属特性(字幕, 描述乃至背景配音等等)
1.1.5 多语言支持
根据播放器或者浏览器的系统信息可以选择播放平台适合的语系提供字幕等文字信息
1.1.6 多带宽支持
根据播放器或者浏览器的系统信息可以选择最适合用户接入的带宽进行播放.
由此可见, 通过作为素材的地理位置无关的媒体文件和提供技术信息的播放对象(媒体播放器, 浏览器), SMIL可以提供生动鲜活的服务端/客户端的播放控制.
1.2 SMIL基本知识
SMIL可以看作时XML的一个自定义标记扩展:
1.2.1 一个完整的SMIL文件
〈smil〉
〈head〉
〈meta name=“copyright“ content=“Your Name“/〉
〈layout〉
〈!-- layout 标记 --〉
〈/layout〉
〈/head〉
〈body〉
〈!—媒体标记 --〉
〈img src=“image1.jpg“/〉
〈/body〉
〈/smil〉
1.2.2 文件分析
? 使用.SMI和.SMIL保存
? 符合XML格式良好和有效性要求
? 使用〈smil〉…〈/smil〉封装
? 分成〈head〉…〈/head〉和〈body〉…〈/body〉两个部分
? 所有标记使用小写
2 SMIL知识解析
2.1 SMIL的基本标记分类
SMIL文档可以看作一个特殊的XML文档, 不过区别在于所有标记使用小写, 而且也没有自定义标记出现.
SMIL标记按照类型分为
2.1.1 元素
就是采用〈xxx…〉…〈/xxx〉方式书写的标记, 往往用于定义媒体文件引用, 特效声明和布局元素声明, SMIL里面主要的元素标记有:
? 基本元素:
〈smil〉〈/smil〉, 〈head〉〈/head〉, 〈body〉〈/body〉
? 环境元素:
〈meta/〉
? 控制流元素:
〈switch〉〈/switch〉
? 资源元素:
〈img〉〈/img〉, 〈video〉〈/video〉, 〈a〉〈/a〉, 〈anchor〉〈/anchor〉
? 时间元素:
〈seq〉〈/seq〉, 〈par〉〈/par〉
? 布局元素:
〈layout〉〈/layout〉, 〈root-layout/〉, 〈region〉〈/region〉
? 特效元素(使用xmlns=http://www.w3.org/2000/smil20/cr/language名字空间):
〈animation/〉, 〈transition/〉
2.1.2 属性
属性用于描述元素的各方面特性, 诸如大小, 时间, 空间和类型等等
按照标记应用范围分为:
2.1.3 头部标记
头部标记主要用于元素声明, 位于〈head〉…〈/head〉之间, 其中类似特效元素和布局元素往往在〈body〉…〈/body〉当中被引用.
2.1.4 主体标记
主体标记则就是用于定义屏幕显示的各类对象, 位于〈body〉…〈/body〉之间
2.2 SMIL的基本标记解析
2.2.1 基本元素:
〈smil〉〈/smil〉, 〈head〉〈/head〉, 〈body〉〈/body〉这些元素用来构建一个SMIL文档
2.2.2 环境元素:
〈meta/〉元素的定义就是HTML的定义, 其中”base”描述基地址
〈meta name=”base” content=http://www.mybase.com/〉
2.2.3 控制流元素:
控制流元素实现条件控制, 〈switch〉〈/switch〉表示一个分支结构, 用来选择语言, 和带宽控制
2.2.4 资源元素:
资源指SMIL作为一个多媒体演示流程控制文件所引用的多媒体对象.
? 图像元素 〈img〉〈/img〉
描述静态图形元素资源
? 视频元素 〈video〉〈/video〉
描述动态视频片断资源
? 链接元素 〈a〉〈/a〉
连接到其他媒体资源
? 跳转元素 〈anchor〉〈/anchor〉
和〈a〉〈/a〉元素类似, 区别在于可以实现内部和外部指定位置跳转, 诸如:
〈anchor href=”xxx.smil#页内主体元素名称”〉…〈/anchor〉
2.2.5 时间元素:
时间元素用于规定其代码块内部的主体元素的时间特性, 目前主要就是媒体资源播放或者显示在时间轴上面的并向或者串行控制.
? 串行元素 〈seq〉〈/seq〉
表示内部资源按照串行模式逐个显示或者播放
? 并行元素 〈par〉〈/par〉
表示内部资源按照并行模式同时显示或者播放
2.2.6 布局元素:
布局元素用于对于显示屏幕(即播放器的用户区)进行划分控制
? 布局块元素 〈layout〉〈/layout〉
位于〈head〉…〈/head〉元素内部, 放置或者”顶层窗口”和”子窗口”的定义
? 顶层窗口元素 〈root-layout〉〈/root-layout〉
位于〈head〉〈layout〉…〈/layout〉〈/head〉元素内部, 定义”顶层窗口”, 就是最外层播放器显示区域的大小等属性
? 子窗口元素 〈region〉〈/region〉
位于〈head〉〈layout〉…〈/layout〉〈/head〉元素内部, 定义”子窗口”, 提供〈body〉…〈/body〉内的资源元素进行引用:
〈region id=”avWindow1” width=”…” height=”…” fit=”…” z-index=”…” … /〉
2.2.7 特效元素:
描述针对静态图片的显示特效控制
? 特效元素 〈animation〉〈/animation〉
〈img …〉〈animation from=”…” to=”…” dur=”…”/〉〈/img〉
3 SMIL支持环境
目前支持SMIL的播放器只有RealOne, 将来支持的播放器重点就是微软的Media Service Server和Media Player的9系列了.
标准的SMIL技术文档位于:http://www.w3.org/AudioVideo 之中
[自己按照网络上面的教程整理了一下, 非常简单, 希望对于大家有用]