时间: 2021-07-31 作者:daque
vb是微软公司开拓的32位window开拓东西软硬件,它遏制多媒介的本领精巧和百般,如在vb 中挪用multimedia mci控件就简单实行集成音乐和视频。 一、multimedia mci控件的挪用及证明 在挪用multimedia mci控件之前,需要实行“工程\元件”菜单吩咐,将microsoft multimedia controls前的方框选中,在东西箱中便会展示multimedia 控件图标。把 multimedia 控件增添到窗体上。当你翻开灵验的多媒介摆设而且控件可用时,体例会机动实行相映处事。按钮被辨别设置为:prev、 next、 play、 pause、 back、 step、 stop、 record 和 eject。你不妨为某一个按钮编写步调,进而为其减少特出功效,但普遍情景,缺省的按钮功效就能很好地播放音乐和视频。 在援用控件时,你需要指定控件的device type 属性,也不妨缺省,对于搀杂的mci摆设和播放cd音乐你必需要证明。方法是mmcontrol1.device type=devname。下表列出了multimedia控件扶助的多媒介摆设。 在multimedia控件中特殊有效的一个属性是command,它在运转进程中向多媒介摆设发出吩咐。方法是:mmcontrol.command = cmdstrings,个中cmdstrings变量与每一个按钮的设置称呼普遍。其余,再有mode、wait、shareable、notify、updateinterval、position、length等属性和done、statusupdate事变是咱们常常用到的。 二、示例步调 底下是一个用multimedia控件集成音乐和视频的运用步调,它可播放*.wav、*.mid、*.avi文献,可表露翻开文献的功夫长度和在播放时的进度,并在状况栏里有关系的证明。编制程序如次: 1.安排窗体 兴建工程,在元件中辨别引入multimedia控件、common dialog control 、windows common control,在窗体中辨别介入commondialog、mmcontrol、slider、status bar、checkbox。label(1-3)辨别放在slider 下的左端、中央和右端,并在窗体上加一个菜单。将slider的selectrange的复选框选定,树立smallchange和maxchange为10,tickfrequengcy为20。在status bar的属性中的panels项用鼠圈点击insert panels 5 次。index有5项,在index第一项、第三项的text项中辨别输出“结余功夫”、“总功夫”,符合树立每一项的minimun width(可拜见后面临panels的遏制)。将checkbox的caption改为“轮回”,把3个label的caption都改为空字符串。结果加入菜单编纂器,树立题目为“文献”,称呼mnufile;在“文献”下创造子菜单题目辨别为“&open”、“&close”、“&exit”,称呼辨别为mnuopen、mnuclose、mnuexit(在mnuexit_click()事变填完代码后,要将其设为失效)。安排后如图1所示。 2.控件代码 本示例的源步调如次: private sub mnuopen_click() ′ 设定翻开文献典型 commondialog1.filter = ″midi音乐序器*.mid|*.mid|声响*.wav|*.wav|widows视频*.avi|*.avi″ commondialog1.showopen mmcontrol1.notify = false mmcontrol1.wait = true mmcontrol1.shareable = false ′由体例默许摆设典型 mmcontrol1.devicetype = ″″ mmcontrol1.filename = commondialog1.filename ′ 翻开 mci 摆设。 mmcontrol1.command = ″open″ mnuclose.enabled = true slider1.visible = true end sub private sub mmcontrol1_statusupdate() on error goto erropen ′树立文献长度以毫秒情势归来, mmcontrol1.timeformat = 0 slider1.max = mmcontrol1.length / 1000 if mmcontrol1.position <> mmcontrol1.length then slider1.value = mmcontrol1.position / 1000 else mmcontrol1.command = ″prev″ slider1.value = 0 end if ′挪用tstring因变量计划结余功夫和总功夫 statusbar1.panels(2) = tstring(mmcontrol1.length - mmcontrol1.position) statusbar1.panels(4) = tstring(mmcontrol1.length) label1.caption = ″00:00″ label2.caption = tstring(mmcontrol1.length / 2) label3.caption = tstring(mmcontrol1.length) ′ 由mode归来各别值并在状况栏经出相映的提醒 select case mmcontrol1.mode case 524 statusbar1.panels(5) = ″ 未翻开摆设……″ case 525 statusbar1.panels(5) = ″遏止状况……″ case 526 statusbar1.panels(5) = ″正在播放……″ & commondialog1.filetitle case 527 statusbar1.panels(5) = ″正在灌音……″ case 528 statusbar1.panels(5) = ″正在探求……″ case 529 statusbar1.panels(5) = ″休憩播放……″ case 530 statusbar1.panels(5) = ″摆设停当……″ end select erropen: ′ 停止翻开文献 end sub ′ 自设置将毫秒变化为分、秒tstring因变量 private function tstring(sm as long) as string s = (sm / 1000 / 60) mod 60 m = (sm / 1000) mod 60 tstring = format(s, ″00″) & ″;″ & format(m, ″00″) end function private sub mmcontrol1_done(notifycode as integer) mmcontrol1.updateinterval = 100 ′ 间隙100毫秒 end sub private sub mnuclose_click() mmcontrol1.command = ″close″ mnuclose.enabled = false end sub private sub mnuexit_click() mmcontrol1.command = ″close″ end end sub private sub check1_click() if check1.value = 1 then mmcontrol1.command = ″play″ ′ 连接播放 end if end sub 其余,欲在暂时窗口播放*.avi文献,可在窗体加一个picturebox,在private sub mmcontrol1_statusupdate()中介入mmcontrol1.hwnddisplay = picture1.hwnd一句。运转时如图2。(本步调在vb5.0,pⅡ350中经过)