onCuePoint = function(infoObject:Object) {}
infoObject:Object -- 对象,其中包含提示点的名称、时间、类型和参数。
当播放 FLV 文件时,在到达嵌入的提示点时调用。您可以使用此处理函数在视频到达特定提示点时触发代码中的动作。这使您可以将应用程序中的其他动作与视频回放事件同步。
有两种类型的提示点可嵌入到 FLV 文件中。
“navigation”提示点在 FLV 文件中指定一个关键帧,该提示点的 time 属性与这一确切的关键帧相对应。Navigation 提示点通常用作书签或入口点,以便使用户可以在视频文件中导航。
“event”提示点都是按时间指定的,而无论该时间是否与特定关键帧相对应。Event 提示点通常表示视频中发生某个情况的时间,可用于触发其他应用程序事件。
onCuePoint 事件处理函数接收带有以下属性的对象:
属性 | 说明 |
---|---|
name | 在将提示点嵌入 FLV 文件中时指定给该提示点的名称。 |
time | 以秒为单位的时间,在回放期间视频文件中的提示点会在该时间出现。 |
type | 所到达的提示点的类型,可以是“navigation”或“event”。 |
parameters | 为此提示点指定的名称/值对字符串的关联数组。任何有效的字符串都可用于参数名称或值。 |
在第一次对文件进行编码时,或者在使用“导入视频”向导将视频剪辑导入 Flash 创作工具时,可以在 FLV 文件中定义提示点。
onMetaData 事件处理函数也可在视频文件中检索有关提示点的信息。但是,onMetaData 事件处理函数在开始播放视频之前获取有关所有提示点的信息。onCuePoint 事件处理函数在回放过程中接收指定时间上的单个提示点的有关信息。
通常,如果希望代码在特定提示点出现时响应该提示点,则应在代码中使用 onCuePoint 事件处理函数触发某个动作。
可使用为 onMetaData() 事件处理函数提供的提示点的列表,使用户在视频流中的预定义点开始播放视频。将提示点的 time 属性的值传递给 NetStream.seek() 方法,以便从该提示点播放视频。
示例
此示例中的代码以新建 NetConnection 和 NetStream 对象为开始。然后,该示例为 NetStream 对象定义 onCuePoint() 处理函数。该处理函数将循环遍历 infoObject 对象中的每个命名属性,并打印该属性的名称和值。当该处理函数找到属性命名的参数时,该处理函数将循环遍历列表中的每个参数名称,并打印参数名称和值。
private function init():void
{
var nc:NetConnection=new NetConnection();
nc.connect(null);
var ns:NetStream=new NetStream(nc);
var client:Object=new Object();
ns.client=client;
client.onCuePoint=function(infoObject:Object):void{
trace("onCuePoing:");
for(var propName:String in infoObject){
if (propName != "parameters")
{
trace(propName + " = " + infoObject[propName]);
}
else
{
trace("parameters =");
if (infoObject.parameters != undefined) {
for (var paramName:String in infoObject.parameters)
{
trace(" " + paramName + ": " + infoObject.parameters[paramName]);
}
}
else
{
trace("undefined");
}
}
}
trace("----------");
}
ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
}