国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

VisualBasic設(shè)計多媒體應(yīng)用程序

2019-11-18 17:47:35
字體:
供稿:網(wǎng)友
一、前言
  隨著多媒體硬件環(huán)境和軟件環(huán)境的不斷完善,目前,大部分計算機軟件開發(fā)中都涉及多媒體軟件技術(shù)的應(yīng)用。
  進行多媒體應(yīng)用程序設(shè)計,從原理上說,可以采用從C 到多媒體專用開發(fā)系統(tǒng)(如TOOLBOOK、AUTHORWARE、DIRECTOR)等多種層次的工具。然而,由于多媒體軟件涉及的媒體復(fù)雜多樣、開發(fā)周期短并且需要多種專業(yè)人員參與,因此,為了能進行實用高效的開發(fā),必須選用簡單易用、開發(fā)效率高的軟件。
  VisualBasic是Microsoft公司開發(fā)的Windows編程工具軟件。由于它具有先進的設(shè)計思想、快速易掌握的使用方法及控制媒體對象手段靈活多樣等特點,受到了多媒體軟件開發(fā)人員的關(guān)注和青睞,也因此成為多媒體應(yīng)用程序開發(fā)的理想工具。

二、VisualBasic的多媒體控件MCI.OCX

  MCI(媒體控制接口)是Microsoft公司為實現(xiàn)Windows系統(tǒng)下設(shè)備無關(guān)性而提供的媒體控制接口標(biāo)準。用戶可以方便地使用MCI控制標(biāo)準的多媒體設(shè)備。

  MCI包含在Windows多媒體擴展的MMSYSTEM模塊中,用來協(xié)調(diào)事件間以及MCI設(shè)備驅(qū)動程序間的通訊,提供了與設(shè)備無關(guān)的接口屬性。通常應(yīng)用程序是通過指定一個MCI設(shè)備類型來區(qū)分MCI設(shè)備,設(shè)備類型指明了當(dāng)前實際使用設(shè)備的物理類型,不同的設(shè)備類型使用不同的控件屬性來進行描述(見附表1)。

  從使用的控制方式上來說,MCI設(shè)備分為復(fù)合和簡單兩類。一個簡單MCI設(shè)備并不需要設(shè)備元素。例如,CD音頻和音碟機就是在一個已經(jīng)安裝好了的硬盤上工作的,它們不需要應(yīng)用程序為其操作的媒體內(nèi)容提供任何信息。但對于復(fù)合的MCI設(shè)備,就需要應(yīng)用程序提供設(shè)備元素,即一個包含全部路徑名的源數(shù)據(jù)文件或目的文件。

  VisualBasic語言的CustomControl(用戶控制部件)概念體現(xiàn)了當(dāng)今軟件設(shè)計的發(fā)展潮流--面向?qū)ο蠹夹g(shù),編程者可以在VisualBasic的工具箱(Toolbox)中嵌入各式各樣五花八門的用戶控件,每個用戶控制部件都有一定的屬性和操作方法,編程者通過屬性的設(shè)置和方法的控制完成特定的功能。為了方便地控制多媒體,在專業(yè)版VisualBasic工具箱中提供了一個用于多媒體目的的用戶控件--MCI.OCX。

  多媒體MCI控件MCI.OCX專用于對多媒體控制接口MCI設(shè)備的多媒體數(shù)據(jù)文件實施記錄和回放,從目的效果上來說,該控件通過一組按鈕來發(fā)出種種設(shè)備控制命令以實現(xiàn)對諸如:音頻面板、MIDI音序器、CD-ROM驅(qū)動器、音頻CD播放機、錄像帶播放、錄音帶錄放等設(shè)備的控制。在VisualBasic程序設(shè)計時,當(dāng)在表中加入多媒體MCI控件時(在工具箱內(nèi)雙擊MCI控件),則出現(xiàn)下列按鈕群:向前(PRev)、向后(Next)、播放(Play)、暫停(Pause)、返回(Back)、單步(Step)、停止(Stop)、記錄(Record)和出帶(Eject)。

  應(yīng)用程序?qū)CI的這組按鈕操作非常靈活方便,如當(dāng)我們打開一個MCI設(shè)備后,就可以根據(jù)該設(shè)備類型的屬性隨時從控件中選擇合適的狀態(tài)按鈕來表示即刻設(shè)備的物理狀態(tài)。所有MCI控件可以有下列幾種方式來編程:⑴控件及其各按鈕的可見性和使能性;⑵可變或完全對控件進行重新定義;⑶在一個窗口表格中可以同時控制多個設(shè)備。

三、多媒體控制部件MCI.OCX的調(diào)用
  在VisualBasic3.0專業(yè)版中,多媒體控件MCI.OCX(在VisualBasic3.0和4.0中,多媒體控件的擴展名為.VBX)是作為可選用部件提供的。為了使用它,首先要執(zhí)行FileAddFile菜單命令,把Windowssystem目錄下的MCI.OCX加入到工具箱(Toolbox)中,這時會在工具箱中出現(xiàn)相應(yīng)的MCI.OCX圖標(biāo)。如果使用的是VisualBasic4.0版(或5.0版),選擇oolsCustomControls菜單或直接鍵入Ctrl T,即可出現(xiàn)對話框,在AvailableControls列表框中選中MicrosoftMultimediaControls條目旁邊的檢查框,同樣會在工具箱中出現(xiàn)MCI.OCX圖標(biāo)。
  雙擊工具箱中的多媒體控件MCI.OCX圖標(biāo),調(diào)用MCI.OCX控件之后,表單FORM中將出現(xiàn)一排灰色的媒體控制按鈕(九個)。

四、VisualBasic多媒體應(yīng)用程序設(shè)計步驟
  多媒體控件MCI.OCX包含有一組高級的與設(shè)備無關(guān)的控制命令。在使用該多媒體控件時,首先用OPEN命令打開MCI設(shè)備(多媒體設(shè)備)并建立一個與之對應(yīng)的文件,以便來進行錄或放等操作(但是對諸如CDAudio、VCR和錄像帶不能使用相應(yīng)文件)。一旦設(shè)備打開成功,就可以向它發(fā)出各種操作命令(見附表的按鈕命令)來完成指定的工作任務(wù)。最后記住,要用Close命令來關(guān)閉設(shè)備和數(shù)據(jù)文件。
  使用MCI.OCX來進行多媒體應(yīng)用程序開發(fā)是很方便的,因為大多數(shù)屬性都是容易理解的,其中Command屬性尤為重要,它是在運行過程中向多媒體設(shè)備發(fā)命令。格式為:
  Form.Mmcontrol.Command=cmdstring$
  其中,cmdstring$變量是如下可執(zhí)行命令名:Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound和Save。一旦給其命令設(shè)置,它就立刻執(zhí)行,所發(fā)生的錯誤存在Error屬性中。
  下面以播放DEMO.WAV(波形文件)文件為例,說明VisualBasic多媒體應(yīng)用程序設(shè)計步驟。
  首先,創(chuàng)建一個包含有多媒體控件(MCI.OCX)的表格(Form),于是屏幕上顯示出形狀類似錄音機的控制鍵,不過這時多媒體控制部件是不能馬上拿來用的(各鍵呈灰色),須通過程序代碼來改變鍵的狀態(tài)。
  其次,在Form_Load過程中,插入相應(yīng)程序代碼。如下
  SubForm_Load()
  ‘在發(fā)出OPEN命令前要設(shè)置多媒體設(shè)備的屬性
  Form1.MMControl1.Notify=False
  Form1.MMControl1.Wait=True
  Form1.MMControl1.Shareable=False
  Form1.MMControl1.DeviceType="WaveAudio"
  Form1.MMControl1.FileName="c:windowss
  Mmdatademo.wav"
  Form1.MMControl1.Command="Open"
  EndSub

  最后,運行上述程序,控制鍵呈黑色,這時就可以使用Play、Record等鍵操作數(shù)據(jù)文件DEMO.WAV了。例如用鼠標(biāo)點按Play鍵就能聽到.WAV音效(計算機應(yīng)裝有發(fā)音設(shè)備)。
  通過上面陳述,不難發(fā)現(xiàn),VisualBasic利用多媒體控件MCI.OCX設(shè)貧嗝教逵τ貿(mào)?序很容易掌握。

五、VisualBasic多媒體應(yīng)用程序設(shè)計實例
  1、播放CD音樂
  在很多多媒體軟件系統(tǒng)中,都提供了激光唱盤的播放軟件,利用多媒體控件MCI.OCX,我們可以輕松地編制出符合自己使用要求的簡易激光唱盤播放機。
  表1給出了簡易CD播放器的主要控制部件定義,其后是對應(yīng)于各個觸發(fā)事件的源程序代碼。
完整的源程序清單如下:
  `CD播放機實用程序
  `運行程序前請在CD-ROM驅(qū)動器中裝入一張激光唱碟'“LOAD”按鈕觸發(fā)事件
  PrivateSubCommand1_Click()
  `裝入CD唱片
  OnErrorGoToMCI_ERROR
  MMControl1.Command="Open"
  OnErrorGoTo0
  `設(shè)置時間格式
  MMControl1.TimeFormat=vbMCIFormatTmsf
  `關(guān)閉LOAD按鈕,顯示圖片
  Command1.Enabled=False
  Picture1.Picture=Picture3.Picture
  `設(shè)置初始軌道數(shù)
  Label1.Caption="1"
  ExitSub
  MCI_ERROR:
  DisplayErrorMessageBox
  ResumeMCI_EXIT
  MCI_EXIT:
  UnloadCD
  EndSub

  PrivateSubForm_Load()
  MMControl1.Wait=True
  MMControl1.UpdateInterval=0
  `設(shè)置設(shè)備類型
  MMControl1.DeviceType="CDAudio"
  `設(shè)置缺省軌道數(shù)為0
  Label1.Caption="0"
 ndSub

  PrivateSubForm_Unload(CancelAsInteger)
  MCITest.Show
  EndSub

  '“出帶”按鈕觸發(fā)事件
  PrivateSubMMControl1_EjectClick(CancelAsInteger)
  Command1.Enabled=True
  Picture1.Picture=Picture2.Picture
  MMControl1.UpdateInterval=0
  OnErrorGoToMCI_ERROR2
  MMControl1.Command="Eject"
  MMControl1.Command="Close"
  OnErrorGoTo0
  Label1.Caption="0"
  Label3.BackColor=&H404040
  ExitSub
  MCI_ERROR2:
  DisplayErrorMessageBox
  ResumeNext
  EndSub

  '“向前”按鈕觸發(fā)事件
  PrivateSubMMControl1_NextCompleted(ErrorCodeAsLong)
  Label1.Caption=Str$(MMControl1.Track)
  EndSub

  '“暫?!卑粹o觸發(fā)事件
  PrivateSubMMControl1_PauseClick(CancelAsInteger)
  MMControl1.UpdateInterval=0
  Label3.BackColor=&H404040
  EndSub

  '“播放”按鈕觸發(fā)事件
  PrivateSubMMControl1_PlayClick(CancelAsInteger)
  MMControl1.UpdateInterval=1000
  Label1.Caption=Str$(MMControl1.Track)
  EndSub

  '“向后”按鈕觸發(fā)事件
  PrivateSubMMControl1_PrevCompleted(ErrorCodeAsLong)
  Label1.Caption=Str$(MMControl1.Track)
  EndSub

  PrivateSubMMControl1_StatusUpdate()
  Label1.Caption=Str$(MMControl1.PositionAnd&HFF)
  IfMMControl1.Mode=vbMCIModePlayThen
  Label3.BackColor=&H80FF&
  Else
  Label3.BackColor=&H404040
  EndIf
  EndSub

  '“停止”按鈕觸發(fā)事件
  PrivateSubMMControl1_StopClick(CancelAsInteger)
  MMControl1.UpdateInterval=0
  Label3.BackColor=&H404040
  MMControl1.To=MMControl1.Start
  MMControl1.Command="Seek"
  MMControl1.Track=1
  Label1.Caption="1"
  EndSub

  2、播放AVI(音頻視頻接口)文件
  電影(包括聲音和圖像)是廣大計算機工作者最為關(guān)心的媒體信息之一,電影處理技術(shù)也是多媒體關(guān)鍵技術(shù)之一。而在多媒體系統(tǒng)中,AVI(AudioVideoInterface,音頻視頻接口)文件是存儲電影(包括聲音和圖像)的標(biāo)準格式,這些AVI文件一般是通過捕獲實時視頻信號得來的,也可以通過掃描儀獲取圖像或者使用動畫制作軟件得到。于是,屏幕窗口上的音頻視頻操作,就變成了對AVI文件(文件后綴為AVI)的處理。在實際工作中,播放AVI文件(即影片)的方法有許多種,而其中以利用VisualBasic的多媒體控件方法最為簡單、方便。下面以一個具體實例來說明如何播放AVI文件:假設(shè)用戶當(dāng)前目錄下有名字為DEMO.AVI的視頻音頻文件,則利用VisulBasic播放該影片需要經(jīng)過如下步驟:
  (1)在VisualBasic的窗體中加入一個MMControl多媒體控件、一個PictureBox圖片框控件和兩個ComandButton命令按鈕部件;
 ?。?)設(shè)置各個控件的屬性,其中窗體命名為Form1,MMControl多媒體控件命名為MMControl1、PictureBox圖片框控件命名為Picture1、兩個ComandButton命令按鈕控件分別命名為Play和Close;
 ?。?)編寫各觸發(fā)事件源程序代碼并且運行。源程序代碼為:
  PrivateSubPlay_Click()
  MMControl1.Filename="DEMO.AVI"
  MMControl1.DeviceType=="AVIVIDEO"
  MMControl1.hWndDisplay=Picture1.hWnd
  MMControl1.Command="OPEN"
  MMControl1.To=1
  MMControl1.Command="SEEK"
  MMControl1.Command="PLAY"
  EndSub
  PrivateSubClose_Click()
  MMControl1.Command="STOP"
  MMControl1.Command="CLOSE"
  EndSub
  值得注意的是:在播放AVI文件之前,首先應(yīng)該把AVI(音頻視頻)驅(qū)動程序安裝在Windows下。AVI的驅(qū)動程序名為MCIAVI.DRV,必須將它拷貝到WINDOWSSYSTEM目錄下,同時在SYSTEM.INI文件的[MCI]部分加上:
  AVIVIDEO=MCIAVI.DRV
  這樣,運行Windows時,Windows會自動地將AVI的驅(qū)動程序安裝好。
  以上僅描述了利用多媒體控制部件播放音頻文件(.WAV)、CD唱片和音頻視頻文件(.AVI)的操作過程。實際上利用多媒體控制部件同樣可以播放動畫文件(.FLI、.FLC)、MIDI文件等其他媒體信息。

六、結(jié)束語
  通過前面論述,不難看出:利用VisualBasic提供的多媒體控制部件MCI.OCX,廣大計算機用戶可以方便、快捷、高效率地開發(fā)出各種多媒體應(yīng)用程序。但需要強調(diào)的是:開發(fā)設(shè)計VisualBasic多媒體應(yīng)用程序,除了可以利用多媒體控制部件以外,還可以采用其他手段,例如通過調(diào)用API函數(shù)等等(鑒于篇幅,這里未做討論)??梢?,VisualBasic確實是專業(yè)與非專業(yè)多媒體軟件開發(fā)人員共同擁有的理想開發(fā)工具。

附表1MCI設(shè)備類型定義
設(shè)備類型 設(shè)備描述
CDAudio  激光唱盤播放設(shè)備
DAT    數(shù)字化磁帶音頻播放機
DigitalVideo動態(tài)數(shù)字視頻圖像設(shè)備
Animation 動畫播放設(shè)備
Other   未給出標(biāo)準定義的MCI設(shè)備
Overlay  模擬視頻圖像疊加設(shè)備
Sequence  MIDI音序發(fā)生器
VCR    可以使用程序控制的磁盤錄像機
VideoDisc 可以使用程序控制的激光視盤機
WaveAudio 播放數(shù)字化波形音頻的設(shè)備???

附表2多媒體控制部件特有事件列表
事件      說明
Done      完成MCI命令動作(Notify為真)
ButtonClick  單擊按鈕
ButtonCompleted按鈕執(zhí)行命令完成
ButtonGetFocus 按鈕獲得輸入焦點
ButtonLostFocus按鈕失去輸入焦點
StatusUpdate  更新媒體控制對象的狀態(tài)信息->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蛟河市| 汪清县| 舒城县| 石景山区| 阜康市| 西乡县| 绥中县| 龙南县| 穆棱市| 临高县| 西昌市| 喀什市| 碌曲县| 五寨县| 黄大仙区| 汉川市| 宁津县| 丰镇市| 沽源县| 高陵县| 渝中区| 永丰县| 马山县| 闵行区| 云安县| 清镇市| 高密市| 建阳市| 平乐县| 罗山县| 荔浦县| 乐陵市| 南平市| 钟山县| 玛纳斯县| 深水埗区| 西贡区| 扎囊县| 延庆县| 迁安市| 灌阳县|