FLV视频与Flash演示文稿同步的应用研究

2008-12-04 02:36张培山罗晋华
中国教育信息化·基础教育 2008年11期
关键词:同步

张培山 罗晋华

摘 要:视频资源是当前教育资源中的一种非常重要的资源。本文以Flash Professional 8为开发环境,提出了开发视频资源的一种全新的思路——FLV视频与Flash演示文稿的动作同步。这种方法可以同时为学习者提供丰富的视觉和听觉信息,有利于学习者对信息的接受和编码,提高学习者的学习效率。

关键词:FLV;Flash演示文稿;提示点;同步

中图分类号:G40-057 文献标识码:B 文章编号:1673-8454(2008)22-0057-03

在教育资源的建设与开发过程中,对于视频资源的使用,多数开发者仅仅是对原始的视频资料进行简单的编辑,然后将视频嵌入到课件或网页中以供学习者观看、学习。但是,仅通过视频进行学习的效果并不十分理想,特别是讲座式的视频。心理学科学实验的研究结果表明:各种感官对人体获取信息、建构知识所做贡献的相对比率是不同的。其中,视觉约占83%,听觉约占11%。心理学对记忆效率的研究结果表明,单靠视觉获得的知识,平均3小时后约能记住70%,3天后约能记住40%;仅靠听觉获取的知识的记忆效率较低;而视听觉同时并用获取的知识,平均3小时后约能记住90%,3天后约能记住75%。所以,如果在播放视频的同时,辅以文字、图形、动画等表现形式对视频中的重要内容加以说明的话,学习者的学习效果会明显好于前者。

为此,我们以Macromedia Flash Professional 8 为创作工具,利用Flash Professional 8所提供的视频编辑功能,实现FLV视频与Flash 演示文稿的动作同步,为学习者同时提供视听觉的信息,以提高学习者的学习效率。

一、FLV简介

FLV是Macromedia公司在Sorenson 公司的压缩算法的基础上开发出来的流式视频格式,是Flash Video的缩写。它的出现有效地解决了视频文件导入Flash后,使导出的swf文件体积庞大、不能在网络上很好的使用等缺点。可以通过Flash中提供的媒体组件来播放外部的FLV文件。

二、实现同步的基本原理

要理解实现FLV文件和Flash演示文稿同步的基本原理,首先需要了解的就是提示点的概念。提示点是一个时间点,在播放 FLV 文件时,视频播放器在播放到该点时触发一个 cuePoint事件。我们可以在想要与课件或网页上的其它元素交互时,向 FLV 文件添加提示点。例如:如果想要显示文本或图形,或者想要与 Flash 动画同步,或者想要影响 FLV 文件的播放等等。提示点可以接收 ActionScript 代码中的控制并将 FLV 文件中的这些点与课件或网页上的其它动作同步。

在Flash Professional 8中提供了三种不同类型的提示点:导航提示点、事件提示点和 ActionScript 提示点。导航提示点和事件提示点也称作嵌入式提示点,因为它们嵌入在 FLV 文件流和 FLV 文件的元数据包中。

导航提示点:导航提示点可以搜索到 FLV 文件中的特定帧,因为Flash会在尽可能接近我们指定的时间点上,在 FLV 文件内创建关键帧。

事件提示点:事件提示点能够将 FLV 文件内的时间点与课件或网页上的外部事件同步。cuePoint 事件在指定的时间发生。我们可以使用视频导入向导或 Flash视频编码器,在 FLV 文件中嵌入导航提示点和事件提示点。

ActionScript 提示点:它是一种外部提示点,可以通过组件的“Flash 视频提示点”对话框或通过 FLVPlayback.addASCuePoint()方法添加。FLVPlayback组件在 FLV 文件之外存储和跟踪 ActionScript 提示点。因此,这些提示点在精确性上要低于嵌入式提示点,ActionScript 提示点精确度为十分之一秒。FLVPlayback组件会在播放头更新时为 ActionScript 提示点生成 cuePoint 事件。

此外,在 ActionScript 中和 FLV 文件的元数据内,提示点表示为具有以下属性的对象:name、time、type。name属性是一个字符串,表示提示点的名称;time 属性是一个数字,表示提示点的发生时间;type 属性是一个字符串,表示提示点的类型,此字符串可以是“navigation”、“event” 或“actionscript”。在发生cuePoint 事件时,通过 info 属性在事件对象中提供提示点对象。

在本文中,我们主要使用事件提示点来实现FLV视频和Flash 演示文稿的同步播放。

三、关键技术的实现

本研究示例主要包括两个文件:FLV文件和Flash演示文稿。在FLV文件中嵌入事件提示点,以在视频播放器播放到提示点时,触发cuePoint事件,在Flash演示文稿中显示与视频相关的文本、图表信息等。在Flash演示文稿中用一个FLVPlayback组件装载外部的FLV文件,并对其注册一个侦听器,以侦听FLVPlayback组件的cuePoint事件。在侦听器函数内,通过ActionScript来控制Flash演示文稿实现和FLV视频的同步。

1.FLV文件的制作

Flash Professional 8提供了一些新的视频编辑功能来增强其视频编辑能力,其中比较重要的就是它提供了一个独立的视频编码器应用程序,即Flash 8 Video Encoder。它允许我们将提示点直接嵌入到 FLV文件中。嵌入的提示点能够使视频回放触发演示文稿中的其它动作,从而可以将视频与动画、文本、图形和其它交互内容同步。将提示点与新的 Flash 视频组件 FLVPlayback 一起使用时,还可以在到达单个提示点时,协调视频剪辑的回放和伴随的交互内容。Flash 8 Video Encoder支持的文件格式主要有MPG、AVI、MOV、ASF、WMV等格式。我们主要通过这个独立的Flash 8 Video Encoder来制作带有嵌入式提示点的FLV文件。

(1)运行Flash 8 Video Encoder主程序,在主菜单“文件”中选择“增加”,或者在程序的右侧单击“增加”按钮,将要编辑的视频文件导入到主程序中。

(2)选中刚刚导入的视频文件,单击“设置”按钮,打开“Flash视频编码设置”对话框,读者可以根据自己的需要选择相应的视频编码配置文件,这里采用默认的设置。在“输入文件名”文本框中输入处理以后的FLV文件的名称。

图1 “Flash 视频编码设置”对话框

(3)打开高级设置对话框(如图1所示),可以看到“编码”、“提示点”和“裁切和修剪”三个选项卡。对于“编码”和“裁切和修剪”两个选项卡中的内容,我们保持其默认的设置。单击“提示点”选项卡,打开“提示点”编辑面板。

(4)如图1所示,通过单击左侧的“+”按钮,来为FLV文件添加嵌入式的提示点。在“名称”栏输入提示点的名称;“时间”栏中的时间,可以使用光标将播放头移动到视频中想要嵌入提示点的那一点来定位。使用视频预览窗口,可以直观地找出视频中要插入提示点的点。还可以使用运行时间计数器(位于视频预览窗口的下面)来定位提示点嵌入的特定时间点。在“类型”一栏中选择提示点类型,这里我们选择“事件”。

(5)回到主界面,单击“开始队列”按钮,开始编辑原始视频文件,生成FLV文件。

同时,Flash 8 Video Encoder还允许我们同时将多个视频文件进行批处理;在内容大部分为视频的环境中,批处理会加快工作流程速度。在 Flash 8 Video Encoder 对视频文件进行编码时,还可以向批处理队列中添加文件、重新排序批处理队列中的文件和更改这些文件的编码设置。

2.Flash演示文稿文件

新建一个Flash演示文稿文件,大小设置为800×600,在根演示文稿下新建几个嵌套的演示文稿,分别命名为Slide0、Slide1等。在根演示文稿的右上角添加一个FLVPlayback组件,大小设置为320×240,用来显示视频(Flash演示文稿文件界面如图2)。然后在不同的演示文稿中加入想要显示的与FLV文件提示点相对应的内容。

图2 演示文稿文件的界面

图3 FLVPlayback 组件的参数面板

(1)设置FLVPlayback组件的参数(如图3所示)。

下面对FLVPlayback组件的一些重要参数进行说明:

autoPlay :确定 FLV 文件的播放方式的布尔值;

autoRewind :用于确定 FLV 文件在它完成播放时是否自动后退;

autoSize :确定是否在运行时自动调整组件的大小;

contentPath :指定 FLV 文件的 URL,在此处输入FLV文件的相对URL;

cuePoints :描述 FLV 文件的提示点的字符串;

maintainAspectRatio :调整 FLVPlayback 组件中视频播放器的大小,以保持源 FLV 文件的高宽比;

skin :设置视频播放器的外观;

skinAutoHide :是否自动隐藏视频播放器的外观。

(2)为FLVPlayback组件注册侦听器

完成上面的FLVPlayback组件参数的设定后,就需要对FLVPlayback组件定义一个侦听器函数,并为其注册这个侦听器。其中的关键代码如下:

function Listener(evtObj:Object):Void{switch(evtObj.info.name)

//判断触发cuePoint事件的提示点

{ case "point1":

gotoSlide(slide1); //转到相关的演示文稿页面

break;

case…… //其它分支同上,只是换成不同的提示点名称

}

}

player_flv.addEventListener("cue Point",Listener); //为FLVPlayback组件注册侦听器

读者可以结合自己的实际需要,在Flash演示文稿中加入其它的内容,来增强自己的Flash演示文稿的表现力,以达到较好的同步效果。使用提示点,不但可以和Flash演示文稿同步,还可以和Flash中的其它元素实现同步,制作出更优质的视频教育资源。

参考文献:

[1]丁兴富.远程教育学[M].北京:北京师范大学出版社,2001.

[2]罗晋华,周文斌.FLV视频在网络课件制作中的应用[J].中国远程教育,2004(9):72-73.

[3]颜金桫,KCLY小土豆工作室.Flash MX 2004 ActionScript 2.0与RIA应用程序开发[M].北京:电子工业出版社,2005.

猜你喜欢
同步
素质教育理念下艺术教育改革的思路
政府职能的转变与中国经济结构调整的同步
公共艺术与城市设计的协调与同步
汽车空调产品的协同开发探讨
“四化”同步发展的实证检验及实现路径研究
冠修复与根管同步治疗隐裂牙牙髓病的临床研究
时间统一系统秒同步故障远程预警系统设计
基于CAZAC序列的MIMOOFDM定时同步算法
基于ETL技术的数字化校园共享数据中心设计