使用 SMIL 文件
为了为多个带宽处理多个流,VideoPlayer 类可以使用支持 SMIL 的一个子集的辅助类 (NCManager)。SMIL 用于标识视频流的位置、FLV 文件的布局(宽和高)以及对应于不同带宽的源 FLV 文件。它还可以用于指定 FLV 文件的比特率和持续时间。
使用 source 参数或 FLVPlayback.source 属性 (ActionScript) 指定 SMIL 文件的位置。有关详细信息,请参阅 Adobe ActionScript 3.0 Reference for the Adobe Flash Platform 中的 源 和 FLVPlayback.source 属性。
以下示例显示一个 SMIL 文件,该文件使用 RTMP 从 FMS 流式加载多个带宽 FLV 文件:
<smil>
<head>
<meta base="rtmp://myserver/myapp/" />
<layout>
<root-layout width="240" height="180" />
</layout>
</head>
<body>
<switch>
<ref src="myvideo_cable.flv" dur="3:00.1"/>
<video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/>
<video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/>
</switch>
</body>
</smil>
<head> 标签可以包含 <meta> 和 <layout> 标签。<meta> 标签仅支持 base 属性,该属性用于指定视频流(来自 FMS 的 RTMP)的 URL。
<layout> 标签仅支持 root-layout 元素,该元素用于设置 height 和 width 属性,因此可确定用来呈现 FLV 文件的窗口的大小。这两个属性仅接受像素值,而不接受百分比。
在 SMIL 文件的正文内,您可以包括指向 FLV 源文件的单个链接;或者,如果您要从 FMS 流式加载多个带宽的多个文件(如前面的示例中所示),则可以使用 <switch> 标签列出这些源文件。
<switch> 标签内的 video 和 ref 标签意义相同;也就是说,它们都可以使用 src 属性指定 FLV 文件。进一步讲,每种标签都可以使用 region、system-bitrate 和 dur 属性指定 FLV 文件的区域、所需的最小带宽和持续时间。
在 <body> 标签内,只允许出现 <video>、<src> 或 <switch> 标签中的一个。
以下示例为不使用带宽检测的单个 FLV 文件显示渐进式下载:
<smil>
<head>
<layout>
<root-layout width="240" height="180" />
</layout>
</head>
<body>
<video src=""myvideo.flv" />
</body>
</smil>
<smil>
用法
<smil>
...
child tags
...
</smil>
示例
以下示例显示指定了 3 个 FLV 文件的一个 SMIL 文件:
<smil>
<head>
<meta base="rtmp://myserver/myapp/" />
<layout>
<root-layout width="240" height="180" />
</layout>
</head>
<body>
<switch>
<ref src="myvideo_cable.flv" dur="3:00.1"/>
<video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/>
<video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/>
</switch>
</body>
</smil>
<head>
用法
<head>
...
child tags
...
</head>
说明
支持 <meta> 和 <layout> 标签,并指定源 FLV 文件的位置和默认布局(高度和宽度)。
示例
以下示例将根布局设置为 240 x 180 像素:
<head>
<meta base="rtmp://myserver/myapp/" />
<layout>
<root-layout width="240" height="180" />
</layout>
</head>
<meta>
说明
包含 base 属性,该属性指定源 FLV 文件的位置 (RTMP URL)。
示例
以下示例为 myserver 上的基础位置显示 meta 标签:
<meta base="rtmp://myserver/myapp/" />
<layout>
用法
<layout>
...
child tags
...
</layout>
示例
下面的示例指定一个 240 x 180 像素的布局:
<layout>
<root-layout width="240" height="180" />
</layout>
<root-layout>
用法
<root-layout...attributes.../>
示例
下面的示例指定一个 240 x 180 像素的布局:
<root-layout width="240" height="180" />
<body>
用法
<body>
...
child tags
...
</body>
子标记
<video>, <ref>, <switch>
说明
包含 <video>、<ref> 和 <switch> 标签,用于分别指定源 FLV 文件的名称、最小带宽以及 FLV 文件的持续时间。在使用 <switch> 标签时只支持 system-bitrate 属性。在 <body> 标签内,只允许有一个 <switch>、<video> 或 <ref> 标签的实例。
示例
下面的示例指定三个 FLV 文件,其中两个是使用 video 标签指定的,另一个则是使用 ref 标签指定的:
<body>
<switch>
<ref src="myvideo_cable.flv" dur="3:00.1"/>
<video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/>
<video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/>
</switch>
</body>
<video>
用法
<video...attributes.../>
属性
src, system-bitrate, dur
说明
与 <ref> 标签的用途相当。支持 src 和 dur 属性,这两个属性指定源 FLV 文件的名称及其持续时间。dur 属性支持完整时间格式 (00:03:00:01) 和不完整时间格式 (03:00:01)。
示例
以下示例将设置视频的来源和持续时间:
<video src="myvideo_mdm.flv" dur="3:00.1"/>
<ref>
属性
src, system-bitrate, dur
说明
与 <video> 标签的用途相当。支持 src 和 dur 属性,这两个属性指定源 FLV 文件的名称及其持续时间。dur 属性支持完整时间格式 (00:03:00:01) 和不完整时间格式 (03:00:01)。
示例
以下示例将设置视频的来源和持续时间:
<ref src="myvideo_cable.flv" dur="3:00.1"/>
<switch>
用法
<switch>
...
child tags
...
<switch/>
说明
与 <video> 或 <ref> 子标签一起使用,用于为多个带宽视频流列出 FLV 文件。<switch> 标签支持 system-bitrate 属性,该属性指定最小带宽以及 src 和 dur 属性。
示例
下面的示例指定三个 FLV 文件,其中两个是使用 video 标签指定的,另一个则是使用 ref 标签指定的:
<switch>
<ref src="myvideo_cable.flv" dur="3:00.1"/>
<video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/>
<video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1" />
</switch>