Director医学多媒体展示系统导航控制技术研究
2014-03-18高升斌
肖 扬,高升斌
Director医学多媒体展示系统导航控制技术研究
肖 扬,高升斌
目的:通过导航控制技术增强Director医学多媒体展示系统的交互性和安全性,实现医学展示内容的自主控制和容错恢复。方法:通过Lingo语言编程,实现对Director多媒体展示系统的互动导航控制及自动导航控制。结果:实践测试证实,该技术有效可行、可移植性好,应用该技术开发的Director医学多媒体展示系统运行稳定,效果精美。结论:增强了Director多媒体展示系统的交互性,提高了系统的出错恢复能力。
Director;导航控制;Lingo
0 引言
在信息技术飞速发展的今天,多媒体展示系统的应用与发展愈加广泛和迅速[1]。多媒体展示系统可以通过整合图像、声音、动画、视频等多媒体手段,使信息传递更为便捷、高效[2]。医学是一门专业性很强的学科,其涉及内容繁多、概念抽象,单靠枯燥的理论说教很难取得理想的表现效果。因此,医学知识的展示传播迫切需要借助医学多媒体展示系统来提升其视觉冲击力和感染力[3-5]。
当前,多媒体展示系统开发工具主要有Flash[6]、Director[7]、Authorware[8]等。在这些众多的专业级多媒体制作工具中,Director凭借其出色的图片、声音、动画处理技术及基于Lingo语言的强大交互功能,成为高品质多媒体系统开发的第一利器[9-10]。
然而,在由Director制作的多媒体系统中,默认以媒体流的形式,依据时间先后次序运行,用户无法自主控制系统多媒体的播放进度,进行快进、跳转等操作,交互性不强,故其常用于影音同步流式多媒体制作,在对交互性要求较高的医学展示领域应用不够广泛。要解决这一问题就必须通过多媒体系统的导航控制,增强其交互性,以达到更好的医学展示目的。同时,多媒体系统运行过程中,难免会遇到用户误操作或内存溢出等情况,良好的导航控制能加强用户对多媒体系统的掌控,提高多媒体系统的出错恢复能力。
导航控制是指对多媒体画面和内容的控制,如进度调整、跳转、播放记忆等,主要分为互动导航控制及自动导航控制2类。由于Director软件不同于Flash、Authorware等开发工具,在其工具箱和行为库中并未集成导航功能,用户实现较为困难。为解决这一难题,本文设计多个Lingo语言函数包,在Director平台上实现互动导航控制和自动导航控制功能,拓宽Director的应用范围,使Director开发人员能方便地将其用于交互式医学多媒体系统的制作。
1 互动导航控制技术
互动控制主要指由用户发起的系统多媒体播放进度的改变,即多媒体跳转控制。用户在观看过程中如果需要略过或回顾某些内容,就需要采用此种控制方式。互动控制主要通过基于帧的跳转技术及标记点mark跳转技术来实现。
1.1 基于帧的跳转技术
帧是Director多媒体系统中的最基本单位,它如同电影中的一个画面,包含某一时刻Director平台上所有元素的展现情况,即一帧就是一个时刻的多媒体画面。编写chesskeyFrame函数,在多媒体播放过程中可通过键盘控制多媒体以指定帧为单位跳转。该函数主要功能为在多媒体播放过程中,如按下键盘右方向键,则多媒体进度向前移动n帧;按下键盘左方向键,多媒体进度向后跳转n帧;按下键盘上方向键,多媒体从头播放;按下键盘的“P”键,则多媒体停止播放。函数代码如下所示:
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
在具体应用过程中,用户只需在系统多媒体设计程序的预调用中加入此全局函数,即可方便快捷地实现多媒体系统基于帧的跳转。以控制虚拟人体旋转的Director医学多媒体为例,在多媒体的程序控制中加载chesskeyFrame函数,将函数中跳转的帧数n取值为10,进行预调用后,运行多媒体并连续按键盘上的右方向键6次,进行快进操作。其演示效果如图1所示。
图1 基于帧的跳转技术演示
1.2 标记点mark跳转技术
Mark就是用于标记帧的一个记号,通俗地说,mark是一个可以指向多媒体中任何画面的标记。通过编写chesskeymark函数可进行标记点mark的跳转控制。该函数主要功能为在多媒体播放过程中,按下键盘右方向键,多媒体跳转到下一个标记点;按下键盘左方向键,多媒体跳转到前一个标记点;按下键盘上方向键,多媒体回到第1个标记处进行播放;按下键盘的“P”键,则多媒体停止播放。函数代码如下所示:
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
将该函数作为全局函数在系统多媒体设计程序的预调用时加载,即可实现基于mark的跳转。以控制虚拟人体旋转的Director医学多媒体为例,在多媒体时间轴上设置6个mark标记点,并在多媒体的程序控制中加载chesskeymark函数,运行多媒体并连续按键盘上的右方向键6次,进行快进操作。其演示效果如图2所示。
图2 基于mark的跳转技术演示
为保持设计的一致性,在程序编写上让chesskeyFrame与chesskeymark函数调用相同的功能键,使得2种跳转技术互斥,即在多媒体系统中只能选择其中一种跳转方式。
在采用互动导航技术控制医学多媒体系统时,使用标记点mark跳转技术标志导航指令要优于基于帧的跳转技术,因为编辑系统多媒体内容时常常会导致帧数的变化,这样每更新一次系统就需要重新定位,而使用标记点则可以通过移动标记点来定位,当它移动时所有的引用将自动改变,使用比较方便;此外,采用基于帧的跳转技术,在多媒体的末尾跳转时,如遇到最后一次跳转的帧数小于预设值n,且多媒体末尾未设终止符,则容易导致多媒体直接退出,达不到跳转的效果。故在实际应用中,多采用基于mark的跳转技术进行导航。
2 自动导航控制技术
自动导航控制主要指进度记忆及断点播放等。用户在观看过程中,难免会碰到误操作、播放中途误退出等意外情况,要保持演示的连续性,需要对用户的播放进度进行记录,以便用户再次进入系统时能够避免从头播放,可以直接接着上次的进度继续进行。
2.1 多媒体进度读取
要实现多媒体系统断点播放功能,需先通过编程建立readProgress函数读取多媒体进度。首先创建一个fileIO对象,然后打开一个保存在操作系统用户根目录下的文本文件progress.txt,并读取其中的内容赋给标量currentProgress。当第1次运行系统时,操作系统根目录区并无progress.txt文件,此时currentProgress的值为空,多媒体跳转到第1帧正常播放。如系统并非第1次运行播放,currentProgress的值则为文本文件中的文本内容。函数代码如下所示:
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函数实现。首先创建一个fileIO对象,然后删除在用户根目录下的旧进度记录文件progress.txt,并创建一个新的文本文件,将当前帧的值赋给变量current-Progress,并将其值保存在新的进度记录文件中。函数代码如下所示:
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 函数调用时机
在多媒体开始播放时,调用readProgress()函数,以便能读取上一次的演示进度。在用户点击退出时或多媒体系统运行1 min后,自动调用函数save-Progress()以便保存用户当前的多媒体播放进度。函数代码如下所示:
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
3 应用效果
将文中导航控制方法在Director 11平台上编程实现,将医学多媒体展示系统打包发布为.exe文件,并在Windows XP、Windows Vista、Windows 7等操作系统上测试运行,测试内容如图3所示,测试结果见表1。
图3 医学多媒体系统展示效果
表1 多媒体展示系统导航控制多平台测试结果
测试结果表明,设计符合要求,相比于传统的多媒体系统,该展示系统具有更好的交互性,播放安全、稳定性高,能精确地实现对医学多媒体展示系统的导航控制。在互动导航控制中,基于mark的导航控制可靠性高,明显优于基于帧的导航控制,可在实际中优先采用。
4 结语
导航控制是提高Director医学多媒体系统交互性、实现对运行全程的把握、增强系统出错恢复能力的重要保障。由于Director软件的集成控件中无此项功能,故需通过编程来实现。论文通过在Director 11平台上的Lingo语言编程,实现了对Director医学多媒体系统的互动导航控制及自动导航控制,采用该技术发布的多媒体系统在多操作系统平台上测试成功。在实际应用中,只需在实现系统时内嵌入调用文中所写的函数即可达到导航控制的效果,方法具有较好的可移植性,对开发Director医学多媒体展示系统起到很好的促进作用。
[1]张爱英,刘晓霓,王延军,等.多媒体技术在医学实验教学中的应用[J].继续医学教育,2014,28(1):83-85.
[2]潘炳超.对“多媒体课件”研究的分析与思考[J].中国医学教育技术,2012,26(2):17-20.
[3]张复初.浅谈计算机多媒体课件在医学院校教学中的应用[J].中国科技信息,2012(7):188.
[4]黄付春,刘书田.多媒体用于医学教学的利与弊[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].中国医学教育技术,2012,26(2):177-181.
[10]张晶,刘小鸿,魏茂军.基于Director制作多媒体教材视频兼容性的解决方案[J].中国医学教育技术,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—),男,工程师,主要从事多媒体技术应用方面的研究工作,E-mail:xuehuo1720@163.com。
350025福州,南京军区福州总医院信息科(肖 扬,高升斌)
高升斌,E-mail:47668046@qq.com