表1
定义好一页的文字以后,就可定义与该页有关的多媒体信息之间的有机关系,可选择声音文件、动画文件、视频文件、统计图、地图标绘动画数据,并定义这些媒体的播放位置、触发条件及进出场效果等。
另外,还可嵌入播放其它著作工具的作品并融合到播出中。这种编辑方法使整个格本形成一个前后一贯的大表格,前、后、左、右滚动可直观方便地浏览全部剧本,操作非常简便,整体性好,每页随时可进行修改,并可随时察看每页效果。
2.多媒体数据访问的实现
(1)采用windows api处理多媒体数据
我们使用bitblt函数实现图形图像的变化,mci接口处理音频、视频、动画、cd-audio数据的播放。
windows 3.1中的mmsystem.dll动态连接程序库提供了大约一百多个具有多媒体处理能力的api函数,其mci函数提供了与设备无关的程序接口,应用程序可以通过mci命令访问符合mci控制标准的多媒体设备,mci接口覆盖了多媒体的主要领域,因此可以满足大多数应用系统的开发需要。由于mci的设备无关性,更换设备时只需更换mci驱动程序,无需了解每种多媒体产品的细节,系统升级十分方便,提高了应用系统的开发效率及灵活性。
在系统开发中,主要用到的mci多媒体设备类型及驱动程序如表2。
表2
其余的mpg、dat等视频格式的设备类型及mci驱动程序视其产品提供的mci驱动程序而定。
(2)利用用户控制对象vbx进行编程,处理图、文、声、像等多媒体数据
目前有众多知名厂商开发出各类vbx控制对象,支持visual c++、visual basic,vbx有可能成为标准文件格式。这类功能强大的vbx控制对象是开发多媒体系统,提高开发效率,缩短开发周期的有效武器,使我们对复杂的图文特效及外部设备的控制都交给了控制对象去处理,大大减少了编程的工作量,而且准确性、高效性大大地提高。
开发多媒体系统常用到的vbx主要有:支持mci接口的mci.vbx(microsoft公司);支持flc、fli动画演播的vbplay.vbx(autodesk公司);支持图文播放效果的fxtools/vb(imagefx公司)、knife.vbx(imageknife)、mhpicture.vbx(microhelp公司);支持图形、图像、文字播放效果的fximage.vbx、fxlabel.vbx;支持mov视频播放的qtmove.vbx、qtview.vbx。
四、结束语
多媒体创作系统的开发与通常的应用系统开发有一定的差异,既要有丰富的编程经验,又要充分了解多媒体的特点。
善于利用多媒体集成工具,就能在应用系统开发中作到事半功倍。完成多媒体作品相当部分的工作量在于图形、图像、声音、影像素材的准备,其技术及艺术含量都很高。而多媒体创作系统,其目的是便于用户高效地使用创作工具按某种构想,将图、文、声、像等媒体进行导演、创意及包装。
目前,多媒体创作工具种类越来越多,随着多媒体技术应用发展的深入,开发多媒体的技术将越来越先进、越科学、越方便、越有效。
本系统应用范围广,适用于需经常制作多媒体作品的教育、军事、旅游等部门。
以下是一个用mci.vbx控制对象来播放多媒体数据的函数实例(visual basic编写,对mpeg视频以realmagic mpeg解压卡为例),可看出用控制对象处理多媒体信息的方便高效性。
const mci_mode_not_open=524
sub closemedia (byval mediatype)'关闭媒体
select case mediatype
case "video","sound","animator"
if not mmcontrol1.mode=mci_mode_not_open then
mmcontrol1.wait=true
mmcontrol1.command="close"
end if
case "graph"
image.picture=loadpicture("")
image.visible=false
end select
end sub
sub openmedia(mediatype as string, medianame as string)'
打开并演播媒体
if not mmcontrol.mode=mci_mode_not_open_then
mmcontrol.wait=true
mmcontrol.command="close"
end if
select case mediatype
case "graph" '图像
image.picture=loadpicture(medianame)
image.visible=true
exit sub
case "sound" '声音
tt$=ucase(right$(medianame,3))
select case tt$
case "wav"
mmcontrol.devicetype="waveaudio"
case "mid"
mmcontrol.devicetype="sequencer"
end select
case "animator" '二、三维动画
tt$=ucase(right$(medianame,3))
select case tt$
case "flc","fli"
mmcontrol.devicetype="animation1"
case "mmm"
mmcontrol.devicetype="mmmovie"
end select
case "video" '视频
tt!=ucase (right$(medianame,3))
select cast tt$
case "avi"
mmcontrol.devicetype="avivideo"
case "mov"
mmcontrol.devicetype="qtwvideo"
case "mpg"
mmcontrol.devicetype="mmaster" ' reelmagic设备名
case "dat"
mmcontrol.devicetype="mmaster" ' reelmagic设备名
case "cdi"
mmcontrol.devicetype="mmaster" 'reelmagic设备名
end select
end select
mmcontrol.1049079981.htm=medianame
mmcontrol.wait=true
mmcontrol.command="open" '打开设备
mmcontrol.notify=true
mmcontrol.command="play" '演播
end sub
,信捷职称论文写作发表网