将提示点用于字幕
提示点允许您与视频进行交互;例如,您可以影响 FLV 文件的播放或在视频播放到特定时间时显示文本。如果没有与 FLV 文件一起使用的 Timed Text XML 文件,可以在 FLV 文件中嵌入事件提示点,然后将这些提示点与文本相关联。本节介绍有关 FLVPlaybackCaptioning 组件提示点标准的信息,以及如何将这些提示点与字幕文本相关联。有关如何通过视频导入向导或 Flash Video Encoder 嵌入事件提示点的详细信息,请参阅《使用 Flash》中的第 16 章,“使用视频”。
了解 FLVPlaybackCaptioning 提示点标准
在 FLV 文件的元数据中,提示点表示为带有以下属性的对象:name、time、type 和 parameters。FLVPlaybackCaptioning ActionScript 提示点具有以下属性:
- name
- name 属性是一个字符串,其中包含为提示点分配的名称。name 属性必须以 fl.video.caption.2.0. 为前缀并且后跟一个字符串。该字符串是一系列正整数,每次都会增加以使每个名称保持唯一。前缀包括也与 FLVPlayback 版本号匹配的版本号。对于 Adobe Flash CS4 及更高版本,必须将版本号设置为 2.0。
- time
- time 属性是应显示字幕的时间。
- type
- type 属性是一个值为 "event" 的字符串。
- 参数
- parameters 属性是一个支持以下名称-值对的数组:
- text:String
- 用于字幕的 HTML 格式的文本。此文本直接传递给 TextField.htmlText 属性。FLVPlaybackCaptioning 组件支持可选的 text:n 属性,该属性支持使用多语言轨道。有关详细信息,请参阅支持带有嵌入的事件提示点的多语言轨道。
- endTime:Number
- 字幕应消失的时间。如果您不指定此属性,FLVPlaybackCaptioning 组件将假定该属性不是一个数字 (NaN),并且字幕将始终显示,直到 FLV 文件结束(FLVPlayback 实例调度 VideoEvent.COMPLETE 事件)。以秒为单位指定 endTime:Number 属性。
- backgroundColor:uint
- 此参数设置 TextField.backgroundColor。此属性为可选属性。
- backgroundColorAlpha:Boolean
- 如果 backgroundColor 的 alpha 值为 0%,则该参数设置 TextField.background = !backgroundColor。此属性为可选属性。
- wrapOption:Boolean
- 此参数将设置 TextField.wordWrap。此属性为可选属性。
了解嵌入的事件提示点的字幕
如果您没有包含 FLV 文件字幕的 Timed Text XML 文件,可以通过将包含字幕的 XML 文件与嵌入的事件提示点进行关联来创建字幕。该 XML 范例假定您已执行以下步骤在您的视频中创建了嵌入的事件提示点:
添加事件提示点(遵循 FLVPlaybackCaptioning 标准),然后对视频进行编码。
在 Flash 中,将一个 FLVPlayback 组件和一个 FLVPlaybackCaptioning 组件拖到舞台中。
设置 FLVPlayback 和 FLVPlaybackCaptioning 组件的 source 属性(即您的 FLV 文件和 XML 文件的位置)。
发布。
以下范例将 XML 导入到编码器中:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<FLVCoreCuePoints>
<CuePoint>
<Time>9136</Time>
<Type>event</Type>
<Name>fl.video.caption.2.0.index1</Name>
<Parameters>
<Parameter>
<Name>text</Name>
<Value><![CDATA[Captioning text for the first cue point]]></Value>
</Parameter>
</Parameters>
</CuePoint>
<CuePoint>
<Time>19327</Time>
<Type>event</Type>
<Name>fl.video.caption.2.0.index2</Name>
<Parameters>
<Parameter>
<Name>text</Name>
<Value><![CDATA[Captioning text for the second cue point]]></Value>
</Parameter>
</Parameters>
</CuePoint>
<CuePoint>
<Time>24247</Time>
<Type>event</Type>
<Name>fl.video.caption.2.0.index3</Name>
<Parameters>
<Parameter>
<Name>text</Name>
<Value><![CDATA[Captioning text for the third cue point]]></Value>
</Parameter>
</Parameters>
</CuePoint>
<CuePoint>
<Time>36546</Time>
<Type>event</Type>
<Name>fl.video.caption.2.0.index4</Name>
<Parameters>
<Parameter>
<Name>text</Name>
<Value><![CDATA[Captioning text for the fourth cue point]]></Value>
</Parameter>
</Parameters>
</CuePoint>
</FLVCoreCuePoints>
此外,FLVPlaybackCaptioning 组件还支持带有嵌入提示点的多语言轨道。有关详细信息,请参阅支持带有嵌入的事件提示点的多语言轨道。
支持带有嵌入的事件提示点的多语言轨道
只要 Timed Text XML 文件符合 FLVPlaybackCaptioning 提示点标准,FLVPlaybackCaptioning 的 track 属性还可支持带有嵌入提示点的多语言轨道。(有关详细信息,请参阅了解 FLVPlaybackCaptioning 提示点标准。)但是,FLVPlaybackCaptioning 组件不支持单独的 XML 文件中的多语言轨道。若要使用 track 属性,请将该属性设为不等于 0 的值。例如,如果将 track 属性设置为 1 (track == 1),则 FLVPlaybackCaptioning 组件将搜索提示点参数。如果没有找到匹配项,将使用提示点参数中的 text 属性。有关详细信息,请参阅《ActionScript® 3.0 Reference for Adobe® Flash® Professional CS5》中的 track 属性。