張培山 羅晉華
摘 要:視頻資源是當(dāng)前教育資源中的一種非常重要的資源。本文以Flash Professional 8為開發(fā)環(huán)境,提出了開發(fā)視頻資源的一種全新的思路——FLV視頻與Flash演示文稿的動(dòng)作同步。這種方法可以同時(shí)為學(xué)習(xí)者提供豐富的視覺和聽覺信息,有利于學(xué)習(xí)者對(duì)信息的接受和編碼,提高學(xué)習(xí)者的學(xué)習(xí)效率。
關(guān)鍵詞:FLV;Flash演示文稿;提示點(diǎn);同步
中圖分類號(hào):G40-057 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1673-8454(2008)22-0057-03
在教育資源的建設(shè)與開發(fā)過程中,對(duì)于視頻資源的使用,多數(shù)開發(fā)者僅僅是對(duì)原始的視頻資料進(jìn)行簡(jiǎn)單的編輯,然后將視頻嵌入到課件或網(wǎng)頁中以供學(xué)習(xí)者觀看、學(xué)習(xí)。但是,僅通過視頻進(jìn)行學(xué)習(xí)的效果并不十分理想,特別是講座式的視頻。心理學(xué)科學(xué)實(shí)驗(yàn)的研究結(jié)果表明:各種感官對(duì)人體獲取信息、建構(gòu)知識(shí)所做貢獻(xiàn)的相對(duì)比率是不同的。其中,視覺約占83%,聽覺約占11%。心理學(xué)對(duì)記憶效率的研究結(jié)果表明,單靠視覺獲得的知識(shí),平均3小時(shí)后約能記住70%,3天后約能記住40%;僅靠聽覺獲取的知識(shí)的記憶效率較低;而視聽覺同時(shí)并用獲取的知識(shí),平均3小時(shí)后約能記住90%,3天后約能記住75%。所以,如果在播放視頻的同時(shí),輔以文字、圖形、動(dòng)畫等表現(xiàn)形式對(duì)視頻中的重要內(nèi)容加以說明的話,學(xué)習(xí)者的學(xué)習(xí)效果會(huì)明顯好于前者。
為此,我們以Macromedia Flash Professional 8 為創(chuàng)作工具,利用Flash Professional 8所提供的視頻編輯功能,實(shí)現(xiàn)FLV視頻與Flash 演示文稿的動(dòng)作同步,為學(xué)習(xí)者同時(shí)提供視聽覺的信息,以提高學(xué)習(xí)者的學(xué)習(xí)效率。
一、FLV簡(jiǎn)介
FLV是Macromedia公司在Sorenson 公司的壓縮算法的基礎(chǔ)上開發(fā)出來的流式視頻格式,是Flash Video的縮寫。它的出現(xiàn)有效地解決了視頻文件導(dǎo)入Flash后,使導(dǎo)出的swf文件體積龐大、不能在網(wǎng)絡(luò)上很好的使用等缺點(diǎn)??梢酝ㄟ^Flash中提供的媒體組件來播放外部的FLV文件。
二、實(shí)現(xiàn)同步的基本原理
要理解實(shí)現(xiàn)FLV文件和Flash演示文稿同步的基本原理,首先需要了解的就是提示點(diǎn)的概念。提示點(diǎn)是一個(gè)時(shí)間點(diǎn),在播放 FLV 文件時(shí),視頻播放器在播放到該點(diǎn)時(shí)觸發(fā)一個(gè) cuePoint事件。我們可以在想要與課件或網(wǎng)頁上的其它元素交互時(shí),向 FLV 文件添加提示點(diǎn)。例如:如果想要顯示文本或圖形,或者想要與 Flash 動(dòng)畫同步,或者想要影響 FLV 文件的播放等等。提示點(diǎn)可以接收 ActionScript 代碼中的控制并將 FLV 文件中的這些點(diǎn)與課件或網(wǎng)頁上的其它動(dòng)作同步。
在Flash Professional 8中提供了三種不同類型的提示點(diǎn):導(dǎo)航提示點(diǎn)、事件提示點(diǎn)和 ActionScript 提示點(diǎn)。導(dǎo)航提示點(diǎn)和事件提示點(diǎn)也稱作嵌入式提示點(diǎn),因?yàn)樗鼈兦度朐?FLV 文件流和 FLV 文件的元數(shù)據(jù)包中。
導(dǎo)航提示點(diǎn):導(dǎo)航提示點(diǎn)可以搜索到 FLV 文件中的特定幀,因?yàn)镕lash會(huì)在盡可能接近我們指定的時(shí)間點(diǎn)上,在 FLV 文件內(nèi)創(chuàng)建關(guān)鍵幀。
事件提示點(diǎn):事件提示點(diǎn)能夠?qū)?FLV 文件內(nèi)的時(shí)間點(diǎn)與課件或網(wǎng)頁上的外部事件同步。cuePoint 事件在指定的時(shí)間發(fā)生。我們可以使用視頻導(dǎo)入向?qū)Щ?Flash視頻編碼器,在 FLV 文件中嵌入導(dǎo)航提示點(diǎn)和事件提示點(diǎn)。
ActionScript 提示點(diǎn):它是一種外部提示點(diǎn),可以通過組件的“Flash 視頻提示點(diǎn)”對(duì)話框或通過 FLVPlayback.addASCuePoint()方法添加。FLVPlayback組件在 FLV 文件之外存儲(chǔ)和跟蹤 ActionScript 提示點(diǎn)。因此,這些提示點(diǎn)在精確性上要低于嵌入式提示點(diǎn),ActionScript 提示點(diǎn)精確度為十分之一秒。FLVPlayback組件會(huì)在播放頭更新時(shí)為 ActionScript 提示點(diǎn)生成 cuePoint 事件。
此外,在 ActionScript 中和 FLV 文件的元數(shù)據(jù)內(nèi),提示點(diǎn)表示為具有以下屬性的對(duì)象:name、time、type。name屬性是一個(gè)字符串,表示提示點(diǎn)的名稱;time 屬性是一個(gè)數(shù)字,表示提示點(diǎn)的發(fā)生時(shí)間;type 屬性是一個(gè)字符串,表示提示點(diǎn)的類型,此字符串可以是“navigation”、“event” 或“actionscript”。在發(fā)生cuePoint 事件時(shí),通過 info 屬性在事件對(duì)象中提供提示點(diǎn)對(duì)象。
在本文中,我們主要使用事件提示點(diǎn)來實(shí)現(xiàn)FLV視頻和Flash 演示文稿的同步播放。
三、關(guān)鍵技術(shù)的實(shí)現(xiàn)
本研究示例主要包括兩個(gè)文件:FLV文件和Flash演示文稿。在FLV文件中嵌入事件提示點(diǎn),以在視頻播放器播放到提示點(diǎn)時(shí),觸發(fā)cuePoint事件,在Flash演示文稿中顯示與視頻相關(guān)的文本、圖表信息等。在Flash演示文稿中用一個(gè)FLVPlayback組件裝載外部的FLV文件,并對(duì)其注冊(cè)一個(gè)偵聽器,以偵聽FLVPlayback組件的cuePoint事件。在偵聽器函數(shù)內(nèi),通過ActionScript來控制Flash演示文稿實(shí)現(xiàn)和FLV視頻的同步。
1.FLV文件的制作
Flash Professional 8提供了一些新的視頻編輯功能來增強(qiáng)其視頻編輯能力,其中比較重要的就是它提供了一個(gè)獨(dú)立的視頻編碼器應(yīng)用程序,即Flash 8 Video Encoder。它允許我們將提示點(diǎn)直接嵌入到 FLV文件中。嵌入的提示點(diǎn)能夠使視頻回放觸發(fā)演示文稿中的其它動(dòng)作,從而可以將視頻與動(dòng)畫、文本、圖形和其它交互內(nèi)容同步。將提示點(diǎn)與新的 Flash 視頻組件 FLVPlayback 一起使用時(shí),還可以在到達(dá)單個(gè)提示點(diǎn)時(shí),協(xié)調(diào)視頻剪輯的回放和伴隨的交互內(nèi)容。Flash 8 Video Encoder支持的文件格式主要有MPG、AVI、MOV、ASF、WMV等格式。我們主要通過這個(gè)獨(dú)立的Flash 8 Video Encoder來制作帶有嵌入式提示點(diǎn)的FLV文件。
(1)運(yùn)行Flash 8 Video Encoder主程序,在主菜單“文件”中選擇“增加”,或者在程序的右側(cè)單擊“增加”按鈕,將要編輯的視頻文件導(dǎo)入到主程序中。
(2)選中剛剛導(dǎo)入的視頻文件,單擊“設(shè)置”按鈕,打開“Flash視頻編碼設(shè)置”對(duì)話框,讀者可以根據(jù)自己的需要選擇相應(yīng)的視頻編碼配置文件,這里采用默認(rèn)的設(shè)置。在“輸入文件名”文本框中輸入處理以后的FLV文件的名稱。
圖1 “Flash 視頻編碼設(shè)置”對(duì)話框
(3)打開高級(jí)設(shè)置對(duì)話框(如圖1所示),可以看到“編碼”、“提示點(diǎn)”和“裁切和修剪”三個(gè)選項(xiàng)卡。對(duì)于“編碼”和“裁切和修剪”兩個(gè)選項(xiàng)卡中的內(nèi)容,我們保持其默認(rèn)的設(shè)置。單擊“提示點(diǎn)”選項(xiàng)卡,打開“提示點(diǎn)”編輯面板。
(4)如圖1所示,通過單擊左側(cè)的“+”按鈕,來為FLV文件添加嵌入式的提示點(diǎn)。在“名稱”欄輸入提示點(diǎn)的名稱;“時(shí)間”欄中的時(shí)間,可以使用光標(biāo)將播放頭移動(dòng)到視頻中想要嵌入提示點(diǎn)的那一點(diǎn)來定位。使用視頻預(yù)覽窗口,可以直觀地找出視頻中要插入提示點(diǎn)的點(diǎn)。還可以使用運(yùn)行時(shí)間計(jì)數(shù)器(位于視頻預(yù)覽窗口的下面)來定位提示點(diǎn)嵌入的特定時(shí)間點(diǎn)。在“類型”一欄中選擇提示點(diǎn)類型,這里我們選擇“事件”。
(5)回到主界面,單擊“開始隊(duì)列”按鈕,開始編輯原始視頻文件,生成FLV文件。
同時(shí),F(xiàn)lash 8 Video Encoder還允許我們同時(shí)將多個(gè)視頻文件進(jìn)行批處理;在內(nèi)容大部分為視頻的環(huán)境中,批處理會(huì)加快工作流程速度。在 Flash 8 Video Encoder 對(duì)視頻文件進(jìn)行編碼時(shí),還可以向批處理隊(duì)列中添加文件、重新排序批處理隊(duì)列中的文件和更改這些文件的編碼設(shè)置。
2.Flash演示文稿文件
新建一個(gè)Flash演示文稿文件,大小設(shè)置為800×600,在根演示文稿下新建幾個(gè)嵌套的演示文稿,分別命名為Slide0、Slide1等。在根演示文稿的右上角添加一個(gè)FLVPlayback組件,大小設(shè)置為320×240,用來顯示視頻(Flash演示文稿文件界面如圖2)。然后在不同的演示文稿中加入想要顯示的與FLV文件提示點(diǎn)相對(duì)應(yīng)的內(nèi)容。
圖2 演示文稿文件的界面
圖3 FLVPlayback 組件的參數(shù)面板
(1)設(shè)置FLVPlayback組件的參數(shù)(如圖3所示)。
下面對(duì)FLVPlayback組件的一些重要參數(shù)進(jìn)行說明:
autoPlay :確定 FLV 文件的播放方式的布爾值;
autoRewind :用于確定 FLV 文件在它完成播放時(shí)是否自動(dòng)后退;
autoSize :確定是否在運(yùn)行時(shí)自動(dòng)調(diào)整組件的大?。?/p>
contentPath :指定 FLV 文件的 URL,在此處輸入FLV文件的相對(duì)URL;
cuePoints :描述 FLV 文件的提示點(diǎn)的字符串;
maintainAspectRatio :調(diào)整 FLVPlayback 組件中視頻播放器的大小,以保持源 FLV 文件的高寬比;
skin :設(shè)置視頻播放器的外觀;
skinAutoHide :是否自動(dòng)隱藏視頻播放器的外觀。
(2)為FLVPlayback組件注冊(cè)偵聽器
完成上面的FLVPlayback組件參數(shù)的設(shè)定后,就需要對(duì)FLVPlayback組件定義一個(gè)偵聽器函數(shù),并為其注冊(cè)這個(gè)偵聽器。其中的關(guān)鍵代碼如下:
function Listener(evtObj:Object):Void{switch(evtObj.info.name)
//判斷觸發(fā)cuePoint事件的提示點(diǎn)
{ case "point1":
gotoSlide(slide1); //轉(zhuǎn)到相關(guān)的演示文稿頁面
break;
case…… //其它分支同上,只是換成不同的提示點(diǎn)名稱
}
}
player_flv.addEventListener("cue Point",Listener); //為FLVPlayback組件注冊(cè)偵聽器
讀者可以結(jié)合自己的實(shí)際需要,在Flash演示文稿中加入其它的內(nèi)容,來增強(qiáng)自己的Flash演示文稿的表現(xiàn)力,以達(dá)到較好的同步效果。使用提示點(diǎn),不但可以和Flash演示文稿同步,還可以和Flash中的其它元素實(shí)現(xiàn)同步,制作出更優(yōu)質(zhì)的視頻教育資源。
參考文獻(xiàn):
[1]丁興富.遠(yuǎn)程教育學(xué)[M].北京:北京師范大學(xué)出版社,2001.
[2]羅晉華,周文斌.FLV視頻在網(wǎng)絡(luò)課件制作中的應(yīng)用[J].中國遠(yuǎn)程教育,2004(9):72-73.
[3]顏金桫,KCLY小土豆工作室.Flash MX 2004 ActionScript 2.0與RIA應(yīng)用程序開發(fā)[M].北京:電子工業(yè)出版社,2005.