摘 要: Exe類型電子書制作軟件集成文字內(nèi)容和小圖片非常容易,效果也很不錯(cuò),但是對(duì)集成高品質(zhì)的音視頻、數(shù)碼照片等大容量數(shù)據(jù)文件卻無能為力。通過對(duì)iebook超級(jí)精靈自帶模板以及Exe電子書文件的深入分析,把flash技術(shù)、流媒體對(duì)象和file協(xié)議有機(jī)結(jié)合,實(shí)現(xiàn)動(dòng)態(tài)加載指定相對(duì)路徑下的外部視頻文件到電子書中,大大提高了iebook超級(jí)精靈在處理多媒體方面的實(shí)用性。
關(guān)鍵詞: 電子書; iebook超級(jí)精靈; 視頻; 流媒體; flash
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)09-46-03
Implementation of E-book's function playing external video files based on iebook
Lin Weihong
(Archives Bureau of Zhejiang Province, Hangzhou, Zhejiang 310007, China)
Abstract: Exe-format E-books can easily integrate text content and small size pictures with rather good impression. However, they are incapable of integrating big size files such as high-quality audio, video and digital photos. Through the deep analysis of super-spirit's templates in iebook and exe-format E-books files, a dynamical load of external video files in relative path is implemented by combining flash technology, streaming media object with \"file\" protocol, The practicability of iebook spirit's on dealing with multimedia is improved considerably.
Key words: E-book; iebook spirit; video; streaming media; flash
0 引言
iebook超級(jí)精靈是國內(nèi)優(yōu)秀的互動(dòng)電子雜志、電子畫冊(cè)及電子讀物的制作軟件,有即點(diǎn)即得的演示效果,可將音頻、視頻、交互性能等數(shù)字內(nèi)容毫不吝嗇地以電子書的表現(xiàn)形式呈現(xiàn)在用戶面前[1]。2011年后,iebook超級(jí)精靈軟件功能日趨穩(wěn)定,向公眾發(fā)放了完全免費(fèi)的全功能體驗(yàn)版,目前最新版本已經(jīng)升級(jí)到了V6.4(2013)版。它功能強(qiáng)大,將部分相似工序進(jìn)行構(gòu)件化設(shè)計(jì),使得軟件使用者可重復(fù)使用、高效率合成標(biāo)準(zhǔn)化的電子雜志[2];軟件中建立構(gòu)件化模版庫,自帶多套精美Flash動(dòng)畫模版及Flash頁面特效,另有大量免費(fèi)或收費(fèi)的素材模板可以共享;操作簡單方便,新用戶也極易上手[3],軟件使用者只要通過更改圖文、視頻即可實(shí)現(xiàn)頁面設(shè)計(jì),輕松制作出集高清視頻、音頻、Flash動(dòng)畫、圖文等各種效果于一體的多媒體電子書,并且不需要任何閱讀器或插件就可直接觀看[4],因此近年來深受廣大用戶喜愛。但是在實(shí)際使用中,iebook超級(jí)精靈的視頻集成功能有較大限制。本文主要介紹iebook軟件在這方面的局限性,并分析其原因,同時(shí)給出解決之道,以便于用戶制作exe格式的電子書,并使它能夠順利播放exe文件外部相對(duì)路徑下的大容量flv視頻文件。
1 iebook自帶多媒體模板的局限性
在iebook超級(jí)精靈中依次點(diǎn)擊選擇“插入\多媒體\視頻模板”,可以看到軟件自帶有三個(gè)視頻模板,分別是“單視頻模板”、“全球首映”、“長江七號(hào)”。不論選擇哪一個(gè)模板,用戶可以通過右鍵點(diǎn)擊隨模板一起插進(jìn)來的附件“ieV1.flv”,選擇“替換”來載入自己指定播放的flv視頻內(nèi)容[5]。制作完成后按“F8”鍵即可生成格式為exe并能直接運(yùn)行的多媒體電子書。但是由于iebook的最終作品是一個(gè)獨(dú)立的exe可執(zhí)行程序,這些多媒體模板在實(shí)際使用中至少存在兩方面的問題:一是用戶指定的視頻文件不能太大,否則無法導(dǎo)入到iebook的工程中,筆者測試導(dǎo)入超過30M大小的flv視頻時(shí),軟件就會(huì)報(bào)錯(cuò)退出;二是哪怕單體不是很大的視頻文件也不能載入太多,因?yàn)樗懈郊曨l文件最后都打包在exe文件中,如果數(shù)量過多,勢必造成exe文件太大,不利于操作系統(tǒng)載入內(nèi)存調(diào)用運(yùn)行。這些限制對(duì)那些希望通過iebook超級(jí)精靈制作含有豐富視頻內(nèi)容電子書的用戶來說不能不說是個(gè)遺憾。
2 問題存在的原因與對(duì)策分析
模板素材資源豐富是iebook的一大優(yōu)勢,借助各種目錄、片頭、文字、圖片、多媒體模板,可以編輯出豐富多彩的頁面。編輯電子書版面插入這些模板時(shí),本質(zhì)上都是在電子書的版面中插入了一個(gè)swf動(dòng)畫。例如在某版面中插入一個(gè)“常用組合_單排文字模板”,該版面里就會(huì)增加一個(gè)名為“00_文字組件01.swf”的元素,用戶可以通過編輯該元素的“文本0”、“圖片0”以及其他屬性來指定想要顯示的內(nèi)容和形式。多媒體模板也是如此,所不同的是,多媒體元素除了橫縱坐標(biāo)、顯示比例、透明度、延時(shí)秒數(shù)、鏈接等基本屬性以及文字、圖片屬性外,還有一個(gè)附件元素,即前面提到的可以替換成指定內(nèi)容的視頻附件“ieV1.flv”。電子書exe文件是要在操作系統(tǒng)下直接運(yùn)行的,其文件尺寸顯然不能太大,不難理解iebook對(duì)導(dǎo)入的視頻附件具有大小限制,也不能導(dǎo)入過多視頻附件內(nèi)容造成exe文件太大。
產(chǎn)生這些影響的根本原因在于,iebook超級(jí)精靈最后要把所有附件視頻文件都打包進(jìn)一個(gè)exe文件中。如何避免電子書exe文件尺寸過大,還要從exe格式電子書的內(nèi)部機(jī)制開始分析,exe電子書的實(shí)質(zhì)就是以插入模板的方式,借助flash技術(shù)把文本、圖像、音頻等素材用可執(zhí)行代碼包裹起來,運(yùn)行時(shí)調(diào)用flash播放控件來控制所插入的各個(gè)模板的swf動(dòng)畫,把各種多媒體內(nèi)容展現(xiàn)出來。
我們以“單視頻模板”為例,來看看iebook超級(jí)精靈自帶視頻模板的是怎樣播放視頻內(nèi)容的。在“iebook超級(jí)精靈”工程中“插入/多媒體/視頻模板/單視頻模板”,在右側(cè)窗口的“ie視頻_01.swf”上點(diǎn)擊右鍵,選擇“輸出元素”,將該模板對(duì)應(yīng)的flash動(dòng)畫輸出為swf文件,不妨將其命名為“ie視頻_01.swf”,如圖1所示。
可見,軟件自帶的“單視頻模板”在這里指定了視頻附件的名字,也指定了尋址方式!“FlvFile”是字符串,它作為參數(shù)傳遞給了NetStream類型的對(duì)象my_ns的play()方法。
我們可以自己設(shè)計(jì)一個(gè)視頻播放動(dòng)畫文件,不妨命名為myPlayer.swf。查閱ActionScrip語言開發(fā)手冊(cè)可知,NetStream類型的play(String str)方法支持“file”協(xié)議的路徑訪問,即在flash動(dòng)畫中可用“my_ns.play(\"file:///c:/ieV2.flv\");”的方式來播放存放路徑為“c:/”,文件名為“ieV2.flv”的外部視頻文件??墒恰癴ile”協(xié)議只有絕對(duì)路徑概念,沒有相對(duì)路徑的概念,所以play()方法的參數(shù)必須以絕對(duì)路徑來表示flv視頻文件,無法用(相對(duì)于myPlayer.swf的)相對(duì)路徑來表示flv視頻文件。但是如果像“FlvFile=\"file:///c:/ieV2.flv\"”這樣直接固定寫死絕對(duì)路徑就意味著附件視頻文件必須事先固定在操作系統(tǒng)某一路徑下,這似乎不合乎常理,嚴(yán)重影響了exe電子書的可移植性。因此,要解決的一個(gè)首要問題是想辦法獲取myPlayer.swf文件的絕對(duì)路徑(這在AS腳本中可以通過“this._url”來獲?。?,然后再根據(jù)附件flv視頻文件相對(duì)于它的相對(duì)路徑計(jì)算出flv視頻文件自己的絕對(duì)路徑,就可以賦給FlvFile變量在NetStream類型的my_ns對(duì)象中播放了。
但是加載到iebook超級(jí)精靈中的myPlayer.swf文件在生成exe電子書后運(yùn)行時(shí),是獲取不到真實(shí)的路徑的,只能獲取到類似于“file:///Z|/FromMemory/46A10F369771449587DE913EFC0A258C/5/E4ED7C01D28A43418DBF2CB92CC35E56.swf”這樣的在內(nèi)存中的虛擬路徑。于是,我們得借助另一個(gè)swf文件,不妨將它取名為loadMyPlayer.swf,(源文件名為loadMyPlayer.fla),它的主要作用有兩個(gè):一是通過“l(fā)oadMovie()”函數(shù)動(dòng)態(tài)地調(diào)用加載myPlayer.swf;二是接收iebook中傳入的flv視頻文件相對(duì)路徑參數(shù),供myPlayer.swf取用。在iebook編輯時(shí)將loadMyPlayer.swf導(dǎo)入到電子書中,把myPlayer.swf和生成的exe電子書放在同一目錄下。exe電子書運(yùn)行時(shí)會(huì)通過內(nèi)置的loadMyPlayer.swf調(diào)用myPlayer.swf,myPlayer.swf再通過對(duì)從“this._url”途徑獲取的自身絕對(duì)路徑和從loadMyPlayer.swf處傳遞過來的的相對(duì)路徑的計(jì)算,得出exe電子書外部flv視頻附件的絕對(duì)路徑,傳遞給my_ns對(duì)象播放。
總體解決方案如圖2所示。
3 參數(shù)化播放本地外部flv文件的實(shí)現(xiàn)過程
3.1 設(shè)計(jì)swf文件和iebook模板
Swf文件的設(shè)計(jì)可以利用flash開發(fā)工具,例如Adobe Flash CS6來完成。主要設(shè)計(jì)兩個(gè)文件,分別為loadMyPlayer.fla和myPlayer.fla。
loadMyPlayer.fla主要完成兩項(xiàng)功能,一是在主場景中設(shè)置一個(gè)輸入文本框,命名為flvFileUrl,用以在iebook中接收電子書版面里設(shè)置的所要播放的視頻文件的路徑名和文件名,為了不影響視覺效果,可以通過代碼“flvFileUrl._visible=1;”使它在運(yùn)行的時(shí)候不顯示;第二個(gè)功能是通過“l(fā)oadMovie()”函數(shù)調(diào)用“myPlayer.swf”。
myPlayer.fla設(shè)計(jì)的是一個(gè)flv視頻播放器,主要利用NetStream類的視頻播放功能來實(shí)現(xiàn),包括開始、停止、暫停、進(jìn)度條等基本功能,這些設(shè)計(jì)對(duì)于稍有flash編程基礎(chǔ)的人來說都已經(jīng)非常熟悉,在此不再贅述。所不同的主要有兩個(gè)方面:一是它要從loadMyPlayer.swf中獲取電子書exe文件中指定的視頻附件相對(duì)路徑和文件名,這可以用“this._parent._parent.flvFileUrl.text”的方式來實(shí)現(xiàn)(具體要寫幾個(gè)“._parent”取決于這句代碼所在的時(shí)間軸的層次);二是它要以file協(xié)議加絕對(duì)路徑的方式來播放,我們可以用“this._url”屬性來獲取myPlayer.swf自身的絕對(duì)路徑字符串,去掉最后的文件名“myPlayer.swf”這部分,加上前面獲取的視頻附件相對(duì)路徑和文件名,就是視頻附件的含有文件名的絕對(duì)路徑字符串,就可以作為參數(shù)傳遞給NetStream類型的my_ns對(duì)象的play()方法播放視頻了。值得一提的是這里可能還會(huì)遇到一個(gè)小問題:當(dāng)myPlayer.swf在不同的調(diào)用程序(如各種瀏覽器、FLASH PLAYER、Adobe Flash CS5 Professional的測試影片窗口、iebook電子書的EXE程序等)下運(yùn)行時(shí),用“this._url”獲取絕對(duì)路徑字符串,結(jié)果可能會(huì)不一樣,有的是反斜杠“\”,如“file:///c:\test\t1.swf”,有的是正斜杠“/”,如“file:///c:/test/t1.swf”,另外,用戶在iebook版面設(shè)計(jì)指定相對(duì)路徑時(shí)也會(huì)輸入“\”或“/”,所以需要統(tǒng)一處理成正斜杠“/”,以便my_ns.play()方法正確尋址。
為方便電子書版面設(shè)計(jì)時(shí)使用,可以將loadMyPlayer.swf制作成為iebook模板,不妨將其命名為“動(dòng)態(tài)調(diào)用播放視頻.im”。模板制作過程比較簡單,主要是設(shè)置模板分類、尺寸、預(yù)覽圖標(biāo)、允許替換的元素等內(nèi)容,可以借助免費(fèi)的iebook模板制作工具來完成。
3.2 導(dǎo)入模板,設(shè)置參數(shù)
在iebook超級(jí)精靈中,依次點(diǎn)擊“插入\模板管理\安裝模板\快速導(dǎo)入”,在跳出的對(duì)話框里選擇上一步中生成的“動(dòng)態(tài)調(diào)用播放視頻.im”,該模板就被導(dǎo)入到相應(yīng)的分類下,可以和其他模板一樣使用了。
打開iebook超級(jí)精靈,創(chuàng)建新項(xiàng)目,點(diǎn)擊“開始\添加頁面\單個(gè)頁面”,右側(cè)窗口中出現(xiàn)版面1和版面2,在兩個(gè)版面上各插入一個(gè)動(dòng)態(tài)調(diào)用播放視頻模板,右側(cè)窗口相應(yīng)版面下都有一個(gè)“l(fā)oadMyPlayer.swf”元素,元素下各有一個(gè)“文本0”屬性,雙擊打開編輯窗口,分別輸入“test1.flv”和“視頻附件\test2.flv”,然后保存退出。
3.3 生成電子書并運(yùn)行
點(diǎn)擊“生成\生成EXE雜志”,編譯產(chǎn)生電子書的exe可執(zhí)行文件,把這個(gè)電子書exe文件、myPlayer.swf文件、test1.flv文件以及存放有test2.flv的“視頻附件”文件夾拷貝到同一個(gè)目錄下,雙擊運(yùn)行exe文件,即可打開電子書,里面的第1頁、第2頁就能播放test1、test2兩個(gè)大容量flv視頻。只要這幾個(gè)項(xiàng)目都放在一起,這個(gè)總的目錄文件夾可以隨意移動(dòng)而不影響運(yùn)行。
4 結(jié)束語
本文針對(duì)iebook超級(jí)精靈無法處理大容量視頻附件的缺陷,提出了有效的解決之道,使得生成的電子書exe文件體積完全不受視頻文件大小的影響。由于外部swf文件播放flv視頻采取的是流媒體技術(shù),播放效果非常流暢。盡管本文重點(diǎn)分析的是針對(duì)iebook電子書大容量視頻附件如何減少exe文件體積的問題,而其實(shí)對(duì)于大數(shù)據(jù)量的音頻、高品質(zhì)照片等內(nèi)容也具有借鑒意義和啟發(fā)作用。
參考文獻(xiàn):
[1] 王勃.關(guān)于電子雜志制作的幾點(diǎn)思考[J].網(wǎng)絡(luò)財(cái)富,2009.8:181
[2] 侯琳琳,李玉斌.電子雜志制作軟件iebook在教學(xué)中的應(yīng)用[J].中國
教育信息化,2011.24:67
[3] 王美霞.淺析熱門電子雜志制作軟件[J].計(jì)算機(jī)時(shí)代,2013.11:48
[4] 李雙利,吳秀娟.論多媒體電子書的制作——以《E-book專題匯報(bào)》
電子書的制作為例[J].信息技術(shù)與信息化,2012.6:90
[5] 李麗霞,張麗娜.利用Iebook軟件制作網(wǎng)絡(luò)課程中的擴(kuò)展電子書[J].
中國現(xiàn)代教育裝備,2010.3:50