肖 揚,高升斌
Director醫(yī)學多媒體展示系統(tǒng)導(dǎo)航控制技術(shù)研究
肖 揚,高升斌
目的:通過導(dǎo)航控制技術(shù)增強Director醫(yī)學多媒體展示系統(tǒng)的交互性和安全性,實現(xiàn)醫(yī)學展示內(nèi)容的自主控制和容錯恢復(fù)。方法:通過Lingo語言編程,實現(xiàn)對Director多媒體展示系統(tǒng)的互動導(dǎo)航控制及自動導(dǎo)航控制。結(jié)果:實踐測試證實,該技術(shù)有效可行、可移植性好,應(yīng)用該技術(shù)開發(fā)的Director醫(yī)學多媒體展示系統(tǒng)運行穩(wěn)定,效果精美。結(jié)論:增強了Director多媒體展示系統(tǒng)的交互性,提高了系統(tǒng)的出錯恢復(fù)能力。
Director;導(dǎo)航控制;Lingo
在信息技術(shù)飛速發(fā)展的今天,多媒體展示系統(tǒng)的應(yīng)用與發(fā)展愈加廣泛和迅速[1]。多媒體展示系統(tǒng)可以通過整合圖像、聲音、動畫、視頻等多媒體手段,使信息傳遞更為便捷、高效[2]。醫(yī)學是一門專業(yè)性很強的學科,其涉及內(nèi)容繁多、概念抽象,單靠枯燥的理論說教很難取得理想的表現(xiàn)效果。因此,醫(yī)學知識的展示傳播迫切需要借助醫(yī)學多媒體展示系統(tǒng)來提升其視覺沖擊力和感染力[3-5]。
當前,多媒體展示系統(tǒng)開發(fā)工具主要有Flash[6]、Director[7]、Authorware[8]等。在這些眾多的專業(yè)級多媒體制作工具中,Director憑借其出色的圖片、聲音、動畫處理技術(shù)及基于Lingo語言的強大交互功能,成為高品質(zhì)多媒體系統(tǒng)開發(fā)的第一利器[9-10]。
然而,在由Director制作的多媒體系統(tǒng)中,默認以媒體流的形式,依據(jù)時間先后次序運行,用戶無法自主控制系統(tǒng)多媒體的播放進度,進行快進、跳轉(zhuǎn)等操作,交互性不強,故其常用于影音同步流式多媒體制作,在對交互性要求較高的醫(yī)學展示領(lǐng)域應(yīng)用不夠廣泛。要解決這一問題就必須通過多媒體系統(tǒng)的導(dǎo)航控制,增強其交互性,以達到更好的醫(yī)學展示目的。同時,多媒體系統(tǒng)運行過程中,難免會遇到用戶誤操作或內(nèi)存溢出等情況,良好的導(dǎo)航控制能加強用戶對多媒體系統(tǒng)的掌控,提高多媒體系統(tǒng)的出錯恢復(fù)能力。
導(dǎo)航控制是指對多媒體畫面和內(nèi)容的控制,如進度調(diào)整、跳轉(zhuǎn)、播放記憶等,主要分為互動導(dǎo)航控制及自動導(dǎo)航控制2類。由于Director軟件不同于Flash、Authorware等開發(fā)工具,在其工具箱和行為庫中并未集成導(dǎo)航功能,用戶實現(xiàn)較為困難。為解決這一難題,本文設(shè)計多個Lingo語言函數(shù)包,在Director平臺上實現(xiàn)互動導(dǎo)航控制和自動導(dǎo)航控制功能,拓寬Director的應(yīng)用范圍,使Director開發(fā)人員能方便地將其用于交互式醫(yī)學多媒體系統(tǒng)的制作。
互動控制主要指由用戶發(fā)起的系統(tǒng)多媒體播放進度的改變,即多媒體跳轉(zhuǎn)控制。用戶在觀看過程中如果需要略過或回顧某些內(nèi)容,就需要采用此種控制方式。互動控制主要通過基于幀的跳轉(zhuǎn)技術(shù)及標記點mark跳轉(zhuǎn)技術(shù)來實現(xiàn)。
1.1 基于幀的跳轉(zhuǎn)技術(shù)
幀是Director多媒體系統(tǒng)中的最基本單位,它如同電影中的一個畫面,包含某一時刻Director平臺上所有元素的展現(xiàn)情況,即一幀就是一個時刻的多媒體畫面。編寫chesskeyFrame函數(shù),在多媒體播放過程中可通過鍵盤控制多媒體以指定幀為單位跳轉(zhuǎn)。該函數(shù)主要功能為在多媒體播放過程中,如按下鍵盤右方向鍵,則多媒體進度向前移動n幀;按下鍵盤左方向鍵,多媒體進度向后跳轉(zhuǎn)n幀;按下鍵盤上方向鍵,多媒體從頭播放;按下鍵盤的“P”鍵,則多媒體停止播放。函數(shù)代碼如下所示:
on chesskeyFrame
case(the keycode)of
123:go to the frame+n
124:go to the frame-n
126:go to frame 0
35:pause
otherwise:go to the frame+1
end case
end chesskeyFrame
在具體應(yīng)用過程中,用戶只需在系統(tǒng)多媒體設(shè)計程序的預(yù)調(diào)用中加入此全局函數(shù),即可方便快捷地實現(xiàn)多媒體系統(tǒng)基于幀的跳轉(zhuǎn)。以控制虛擬人體旋轉(zhuǎn)的Director醫(yī)學多媒體為例,在多媒體的程序控制中加載chesskeyFrame函數(shù),將函數(shù)中跳轉(zhuǎn)的幀數(shù)n取值為10,進行預(yù)調(diào)用后,運行多媒體并連續(xù)按鍵盤上的右方向鍵6次,進行快進操作。其演示效果如圖1所示。
圖1 基于幀的跳轉(zhuǎn)技術(shù)演示
1.2 標記點mark跳轉(zhuǎn)技術(shù)
Mark就是用于標記幀的一個記號,通俗地說,mark是一個可以指向多媒體中任何畫面的標記。通過編寫chesskeymark函數(shù)可進行標記點mark的跳轉(zhuǎn)控制。該函數(shù)主要功能為在多媒體播放過程中,按下鍵盤右方向鍵,多媒體跳轉(zhuǎn)到下一個標記點;按下鍵盤左方向鍵,多媒體跳轉(zhuǎn)到前一個標記點;按下鍵盤上方向鍵,多媒體回到第1個標記處進行播放;按下鍵盤的“P”鍵,則多媒體停止播放。函數(shù)代碼如下所示:
on chesskeymark
case(the keycode)of
123:go marker(-1)
124:go marker(1)
126:go to marker(0)
35:pause
otherwise:go to the frame+1
end case
end chesskeymark
將該函數(shù)作為全局函數(shù)在系統(tǒng)多媒體設(shè)計程序的預(yù)調(diào)用時加載,即可實現(xiàn)基于mark的跳轉(zhuǎn)。以控制虛擬人體旋轉(zhuǎn)的Director醫(yī)學多媒體為例,在多媒體時間軸上設(shè)置6個mark標記點,并在多媒體的程序控制中加載chesskeymark函數(shù),運行多媒體并連續(xù)按鍵盤上的右方向鍵6次,進行快進操作。其演示效果如圖2所示。
圖2 基于mark的跳轉(zhuǎn)技術(shù)演示
為保持設(shè)計的一致性,在程序編寫上讓chesskeyFrame與chesskeymark函數(shù)調(diào)用相同的功能鍵,使得2種跳轉(zhuǎn)技術(shù)互斥,即在多媒體系統(tǒng)中只能選擇其中一種跳轉(zhuǎn)方式。
在采用互動導(dǎo)航技術(shù)控制醫(yī)學多媒體系統(tǒng)時,使用標記點mark跳轉(zhuǎn)技術(shù)標志導(dǎo)航指令要優(yōu)于基于幀的跳轉(zhuǎn)技術(shù),因為編輯系統(tǒng)多媒體內(nèi)容時常常會導(dǎo)致幀數(shù)的變化,這樣每更新一次系統(tǒng)就需要重新定位,而使用標記點則可以通過移動標記點來定位,當它移動時所有的引用將自動改變,使用比較方便;此外,采用基于幀的跳轉(zhuǎn)技術(shù),在多媒體的末尾跳轉(zhuǎn)時,如遇到最后一次跳轉(zhuǎn)的幀數(shù)小于預(yù)設(shè)值n,且多媒體末尾未設(shè)終止符,則容易導(dǎo)致多媒體直接退出,達不到跳轉(zhuǎn)的效果。故在實際應(yīng)用中,多采用基于mark的跳轉(zhuǎn)技術(shù)進行導(dǎo)航。
自動導(dǎo)航控制主要指進度記憶及斷點播放等。用戶在觀看過程中,難免會碰到誤操作、播放中途誤退出等意外情況,要保持演示的連續(xù)性,需要對用戶的播放進度進行記錄,以便用戶再次進入系統(tǒng)時能夠避免從頭播放,可以直接接著上次的進度繼續(xù)進行。
2.1 多媒體進度讀取
要實現(xiàn)多媒體系統(tǒng)斷點播放功能,需先通過編程建立readProgress函數(shù)讀取多媒體進度。首先創(chuàng)建一個fileIO對象,然后打開一個保存在操作系統(tǒng)用戶根目錄下的文本文件progress.txt,并讀取其中的內(nèi)容賦給標量currentProgress。當?shù)?次運行系統(tǒng)時,操作系統(tǒng)根目錄區(qū)并無progress.txt文件,此時currentProgress的值為空,多媒體跳轉(zhuǎn)到第1幀正常播放。如系統(tǒng)并非第1次運行播放,currentProgress的值則為文本文件中的文本內(nèi)容。函數(shù)代碼如下所示:
on readProgress
fileIOObject=new(xtra"fileIO")
openFile(fileIOObject,getOsDirectory()&"progress.txt",0)
currentProgress=readFile(fileIOObject)
put currentProgress
if currentProgress=void then
go to frame 1
else
go to frame value(currentProgress)
closeFile(fileIOObject)
end if
fileIOObject=0
end
2.2 多媒體進度保存
多媒體進度讀取可通過編寫saveProgress函數(shù)實現(xiàn)。首先創(chuàng)建一個fileIO對象,然后刪除在用戶根目錄下的舊進度記錄文件progress.txt,并創(chuàng)建一個新的文本文件,將當前幀的值賦給變量current-Progress,并將其值保存在新的進度記錄文件中。函數(shù)代碼如下所示:
on saveProgress
fileIOObject=new(xtra"fileIO")
openFile(fileIOObject,getOsDirectory()&"progress.txt",0)
delete(fileIOObject)
createFile(fileIOObject,getOsDirectory()&"progress.txt")
openFile(fileIOObject,getOsDirectory()&"progress.txt",0)
currentProgress=string(the frame)
writeString(fileIOObject,currentProgress)
closeFile(fileIOObject)
fileIOObject=0
end
2.3 函數(shù)調(diào)用時機
在多媒體開始播放時,調(diào)用readProgress()函數(shù),以便能讀取上一次的演示進度。在用戶點擊退出時或多媒體系統(tǒng)運行1 min后,自動調(diào)用函數(shù)save-Progress()以便保存用戶當前的多媒體播放進度。函數(shù)代碼如下所示:
on startmovie me
readProgress()
end
on autoSave
if(_sysytem.milliseconds>=(1 000*60))then
saveProgress()
_sysytem.restart()
end if
end
on mouseUp me
--在退出按鈕中加入該代碼
saveProgress()
halt
end
將文中導(dǎo)航控制方法在Director 11平臺上編程實現(xiàn),將醫(yī)學多媒體展示系統(tǒng)打包發(fā)布為.exe文件,并在Windows XP、Windows Vista、Windows 7等操作系統(tǒng)上測試運行,測試內(nèi)容如圖3所示,測試結(jié)果見表1。
圖3 醫(yī)學多媒體系統(tǒng)展示效果
表1 多媒體展示系統(tǒng)導(dǎo)航控制多平臺測試結(jié)果
測試結(jié)果表明,設(shè)計符合要求,相比于傳統(tǒng)的多媒體系統(tǒng),該展示系統(tǒng)具有更好的交互性,播放安全、穩(wěn)定性高,能精確地實現(xiàn)對醫(yī)學多媒體展示系統(tǒng)的導(dǎo)航控制。在互動導(dǎo)航控制中,基于mark的導(dǎo)航控制可靠性高,明顯優(yōu)于基于幀的導(dǎo)航控制,可在實際中優(yōu)先采用。
導(dǎo)航控制是提高Director醫(yī)學多媒體系統(tǒng)交互性、實現(xiàn)對運行全程的把握、增強系統(tǒng)出錯恢復(fù)能力的重要保障。由于Director軟件的集成控件中無此項功能,故需通過編程來實現(xiàn)。論文通過在Director 11平臺上的Lingo語言編程,實現(xiàn)了對Director醫(yī)學多媒體系統(tǒng)的互動導(dǎo)航控制及自動導(dǎo)航控制,采用該技術(shù)發(fā)布的多媒體系統(tǒng)在多操作系統(tǒng)平臺上測試成功。在實際應(yīng)用中,只需在實現(xiàn)系統(tǒng)時內(nèi)嵌入調(diào)用文中所寫的函數(shù)即可達到導(dǎo)航控制的效果,方法具有較好的可移植性,對開發(fā)Director醫(yī)學多媒體展示系統(tǒng)起到很好的促進作用。
[1]張愛英,劉曉霓,王延軍,等.多媒體技術(shù)在醫(yī)學實驗教學中的應(yīng)用[J].繼續(xù)醫(yī)學教育,2014,28(1):83-85.
[2]潘炳超.對“多媒體課件”研究的分析與思考[J].中國醫(yī)學教育技術(shù),2012,26(2):17-20.
[3]張復(fù)初.淺談計算機多媒體課件在醫(yī)學院校教學中的應(yīng)用[J].中國科技信息,2012(7):188.
[4]黃付春,劉書田.多媒體用于醫(yī)學教學的利與弊[J].中國科技信息,2010(2):214,225.
[5]Norcini J J,Mckinley W M.Assessment methods in medical education[J].TeachingandTeacherEducation,2007,23(3):239-250.
[6]Adobe.ComparingAdobeDirectortoAdobeFlash[EB/OL].(2013-04-15)[2014-05-20].http://www.adobe.com/products/director/compare/.
[7]Adobe.AdobeFlashProfessionalCS6[EB/OL].(2013-04-15)[2014-05-20].http://www.adobe.com/products/flash/overview/.
[8]Adobe.Adobe Authorware 7[EB/OL].(2013-04-15)[2014-05-20]. http://www.adobe.com/products/Authorware/overview/.
[9]魚泳,翟嵩.基于Flash的Director與外部程序消息傳遞方法[J].中國醫(yī)學教育技術(shù),2012,26(2):177-181.
[10]張晶,劉小鴻,魏茂軍.基于Director制作多媒體教材視頻兼容性的解決方案[J].中國醫(yī)學教育技術(shù),2012,26(3):262-265.
(收稿:2014-06-24 修回:2014-09-10)
(欄目責任編校:李惠萍)
Research on navigation control technology of Director-based medical multimedia display system
XIAO Yang,GAO Sheng-bin
(Department of Information,Fuzhou General Hospital of Nanjing Military Area Command,Fuzhou 350025,China)
To strengthen the interactivity and the security of Director-based medical multimedia display system by using navigation control technology,which can also achieve autonomous control and fault tolerant implementation of medical display content.Through Lingo language programming,the interactive navigation control and automatic navigation control were realized for Director-based medical multimedia display system.Practice tests confirmed that the method was feasible and transplantable.The medical multimedia display system was stable and effective.It can enhance the interactivity and error recovery of Director-based medical multimedia display system. [Chinese Medical Equipment Journal,2014,35(12):44-47]
Director;navigation control;Lingo
R318;TP309.2
A
1003-8868(2014)12-0044-04
10.7687/J.ISSN1003-8868.2014.12.044
肖 揚(1981—),男,工程師,主要從事多媒體技術(shù)應(yīng)用方面的研究工作,E-mail:xuehuo1720@163.com。
350025福州,南京軍區(qū)福州總醫(yī)院信息科(肖 揚,高升斌)
高升斌,E-mail:47668046@qq.com