程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VisualBasic設計多媒體應用程序

VisualBasic設計多媒體應用程序

編輯:VB綜合教程
一、前言
  隨著多媒體硬件環境和軟件環境的不斷完善,目前,大部分計算機軟件開發中都涉及多媒體軟件技術的應用。
  進行多媒體應用程序設計,從原理上說,可以采用從C 到多媒體專用開發系統(如TOOLBOOK、AUTHORWARE、DIRECTOR)等多種層次的工具。然而,由於多媒體軟件涉及的媒體復雜多樣、開發周期短並且需要多種專業人員參與,因此,為了能進行實用高效的開發,必須選用簡單易用、開發效率高的軟件。
  VisualBasic是Microsoft公司開發的Windows編程工具軟件。由於它具有先進的設計思想、快速易掌握的使用方法及控制媒體對象手段靈活多樣等特點,受到了多媒體軟件開發人員的關注和青睐,也因此成為多媒體應用程序開發的理想工具。
  
  二、VisualBasic的多媒體控件MCI.OCX
  
  MCI(媒體控制接口)是Microsoft公司為實現Windows系統下設備無關性而提供的媒體控制接口標准。用戶可以方便地使用MCI控制標准的多媒體設備。
  
  MCI包含在Windows多媒體擴展的MMSYSTEM模塊中,用來協調事件間以及MCI設備驅動程序間的通訊,提供了與設備無關的接口屬性。通常應用程序是通過指定一個MCI設備類型來區分MCI設備,設備類型指明了當前實際使用設備的物理類型,不同的設備類型使用不同的控件屬性來進行描述(見附表1)。
  
  從使用的控制方式上來說,MCI設備分為復合和簡單兩類。一個簡單MCI設備並不需要設備元素。例如,CD音頻和音碟機就是在一個已經安裝好了的硬盤上工作的,它們不需要應用程序為其操作的媒體內容提供任何信息。但對於復合的MCI設備,就需要應用程序提供設備元素,即一個包含全部路徑名的源數據文件或目的文件。
  
  VisualBasic語言的CustomControl(用戶控制部件)概念體現了當今軟件設計的發展潮流--面向對象技術,編程者可以在VisualBasic的工具箱(Toolbox)中嵌入各式各樣五花八門的用戶控件,每個用戶控制部件都有一定的屬性和操作方法,編程者通過屬性的設置和方法的控制完成特定的功能。為了方便地控制多媒體,在專業版VisualBasic工具箱中提供了一個用於多媒體目的的用戶控件--MCI.OCX。
  
  多媒體MCI控件MCI.OCX專用於對多媒體控制接口MCI設備的多媒體數據文件實施記錄和回放,從目的效果上來說,該控件通過一組按鈕來發出種種設備控制命令以實現對諸如:音頻面板、MIDI音序器、CD-ROM驅動器、音頻CD播放機、錄像帶播放、錄音帶錄放等設備的控制。在VisualBasic程序設計時,當在表中加入多媒體MCI控件時(在工具箱內雙擊MCI控件),則出現下列按鈕群:向前(Prev)、向後(Next)、播放(Play)、暫停(Pause)、返回(Back)、單步(Step)、停止(Stop)、記錄(Record)和出帶(Eject)。
  
  應用程序對MCI的這組按鈕操作非常靈活方便,如當我們打開一個MCI設備後,就可以根據該設備類型的屬性隨時從控件中選擇合適的狀態按鈕來表示即刻設備的物理狀態。所有MCI控件可以有下列幾種方式來編程:⑴控件及其各按鈕的可見性和使能性;⑵可變或完全對控件進行重新定義;⑶在一個窗口表格中可以同時控制多個設備。
  
  三、多媒體控制部件MCI.OCX的調用
  在VisualBasic3.0專業版中,多媒體控件MCI.OCX(在VisualBasic3.0和4.0中,多媒體控件的擴展名為.VBX)是作為可選用部件提供的。為了使用它,首先要執行FileAddFile菜單命令,把Windowssystem目錄下的MCI.OCX加入到工具箱(Toolbox)中,這時會在工具箱中出現相應的MCI.OCX圖標。如果使用的是VisualBasic4.0版(或5.0版),選擇oolsCustomControls菜單或直接鍵入Ctrl T,即可出現對話框,在AvailableControls列表框中選中MicrosoftMultimediaControls條目旁邊的檢查框,同樣會在工具箱中出現MCI.OCX圖標。
  雙擊工具箱中的多媒體控件MCI.OCX圖標,調用MCI.OCX控件之後,表單FORM中將出現一排灰色的媒體控制按鈕(九個)。
  
  四、VisualBasic多媒體應用程序設計步驟
  多媒體控件MCI.OCX包含有一組高級的與設備無關的控制命令。在使用該多媒體控件時,首先用OPEN命令打開MCI設備(多媒體設備)並建立一個與之對應的文件,以便來進行錄或放等操作(但是對諸如CDAudio、VCR和錄像帶不能使用相應文件)。一旦設備打開成功,就可以向它發出各種操作命令(見附表的按鈕命令)來完成指定的工作任務。最後記住,要用Close命令來關閉設備和數據文件。
  使用MCI.OCX來進行多媒體應用程序開發是很方便的,因為大多數屬性都是容易理解的,其中Command屬性尤為重要,它是在運行過程中向多媒體設備發命令。格式為:
  Form.Mmcontrol.Command=cmdstring$
  其中,cmdstring$變量是如下可執行命令名:Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound和Save。一旦給其命令設置,它就立刻執行,所發生的錯誤存在Error屬性中。
  下面以播放DEMO.WAV(波形文件)文件為例,說明VisualBasic多媒體應用程序設計步驟。
  首先,創建一個包含有多媒體控件(MCI.OCX)的表格(Form),於是屏幕上顯示出形狀類似錄音機的控制鍵,不過這時多媒體控制部件是不能馬上拿來用的(各鍵呈灰色),須通過程序代碼來改變鍵的狀態。
  其次,在Form_Load過程中,插入相應程序代碼。如下
  SubForm_Load()
  ‘在發出OPEN命令前要設置多媒體設備的屬性
  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等鍵操作數據文件DEMO.WAV了。例如用鼠標點按Play鍵就能聽到.WAV音效(計算機應裝有發音設備)。
  通過上面陳述,不難發現,VisualBasic利用多媒體控件MCI.OCX設貧嗝教逵τ貿?序很容易掌握。
  
  五、VisualBasic多媒體應用程序設計實例
  1、播放CD音樂
  在很多多媒體軟件系統中,都提供了激光唱盤的播放軟件,利用多媒體控件MCI.OCX,我們可以輕松地編制出符合自己使用要求的簡易激光唱盤播放機。
  表1給出了簡易CD播放器的主要控制部件定義,其後是對應於各個觸發事件的源程序代碼。
  完整的源程序清單如下:
  `CD播放機實用程序
  `運行程序前請在CD-ROM驅動器中裝入一張激光唱碟'“LOAD”按鈕觸發事件
  PrivateSubCommand1_Click()
  `裝入CD唱片
  OnErrorGoToMCI_ERROR
  MMControl1.Command="Open"
  OnErrorGoTo0
  `設置時間格式
  MMControl1.TimeFormat=vbMCIFormatTmsf
  `關閉LOAD按鈕,顯示圖片
  Command1.Enabled=False
  Picture1.Picture=Picture3.Picture
  `設置初始軌道數
  Label1.Caption="1"
  ExitSub
  MCI_ERROR:
  DisplayErrorMessageBox
  ResumeMCI_EXIT
  MCI_EXIT:
  UnloadCD
  EndSub
  
  PrivateSubForm_Load()
  MMControl1.Wait=True
  MMControl1.UpdateInterval=0
  `設置設備類型
  MMControl1.DeviceType="CDAudio"
  `設置缺省軌道數為0
  Label1.Caption="0"
   ndSub
  
  PrivateSubForm_Unload(CancelAsInteger)
  MCITest.Show
  EndSub
  
  '“出帶”按鈕觸發事件
  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
  
  '“向前”按鈕觸發事件
  PrivateSubMMControl1_NextCompleted(ErrorCodeAsLong)
  Label1.Caption=Str$(MMControl1.Track)
  EndSub
  
  '“暫停”按鈕觸發事件
  PrivateSubMMControl1_PauseClick(CancelAsInteger)
  MMControl1.UpdateInterval=0
  Label3.BackColor=&H404040
  EndSub
  
  '“播放”按鈕觸發事件
  PrivateSubMMControl1_PlayClick(CancelAsInteger)
  MMControl1.UpdateInterval=1000
  Label1.Caption=Str$(MMControl1.Track)
  EndSub
  
  '“向後”按鈕觸發事件
  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
  
  '“停止”按鈕觸發事件
  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(音頻視頻接口)文件
  電影(包括聲音和圖像)是廣大計算機工作者最為關心的媒體信息之一,電影處理技術也是多媒體關鍵技術之一。而在多媒體系統中,AVI(AudioVideoInterface,音頻視頻接口)文件是存儲電影(包括聲音和圖像)的標准格式,這些AVI文件一般是通過捕獲實時視頻信號得來的,也可以通過掃描儀獲取圖像或者使用動畫制作軟件得到。於是,屏幕窗口上的音頻視頻操作,就變成了對AVI文件(文件後綴為AVI)的處理。在實際工作中,播放AVI文件(即影片)的方法有許多種,而其中以利用VisualBasic的多媒體控件方法最為簡單、方便。下面以一個具體實例來說明如何播放AVI文件:假設用戶當前目錄下有名字為DEMO.AVI的視頻音頻文件,則利用VisulBasic播放該影片需要經過如下步驟:
  (1)在VisualBasic的窗體中加入一個MMControl多媒體控件、一個PictureBox圖片框控件和兩個ComandButton命令按鈕部件;
  (2)設置各個控件的屬性,其中窗體命名為Form1,MMControl多媒體控件命名為MMControl1、PictureBox圖片框控件命名為Picture1、兩個ComandButton命令按鈕控件分別命名為Play和Close;
  (3)編寫各觸發事件源程序代碼並且運行。源程序代碼為:
  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文件之前,首先應該把AVI(音頻視頻)驅動程序安裝在Windows下。AVI的驅動程序名為MCIAVI.DRV,必須將它拷貝到WINDOWSSYSTEM目錄下,同時在SYSTEM.INI文件的[MCI]部分加上:
  AVIVIDEO=MCIAVI.DRV
  這樣,運行Windows時,Windows會自動地將AVI的驅動程序安裝好。
  以上僅描述了利用多媒體控制部件播放音頻文件(.WAV)、CD唱片和音頻視頻文件(.AVI)的操作過程。實際上利用多媒體控制部件同樣可以播放動畫文件(.FLI、.FLC)、MIDI文件等其他媒體信息。
  
  六、結束語
  通過前面論述,不難看出:利用VisualBasic提供的多媒體控制部件MCI.OCX,廣大計算機用戶可以方便、快捷、高效率地開發出各種多媒體應用程序。但需要強調的是:開發設計VisualBasic多媒體應用程序,除了可以利用多媒體控制部件以外,還可以采用其他手段,例如通過調用API函數等等(鑒於篇幅,這裡未做討論)。可見,VisualBasic確實是專業與非專業多媒體軟件開發人員共同擁有的理想開發工具。
  
  附表1MCI設備類型定義
  設備類型 設備描述
  CDAudio  激光唱盤播放設備
  DAT  數字化磁帶音頻播放機
  DigitalVideo動態數字視頻圖像設備
  Animation 動畫播放設備
  Other   未給出標准定義的MCI設備
  Overlay  模擬視頻圖像疊加設備
  Sequence  MIDI音序發生器
  VCR  可以使用程序控制的磁盤錄像機
  VideoDisc 可以使用程序控制的激光視盤機
  WaveAudio 播放數字化波形音頻的設備???
  
  附表2多媒體控制部件特有事件列表
  事件  說明
  Done  完成MCI命令動作(Notify為真)
  ButtonClick  單擊按鈕
  ButtonCompleted按鈕執行命令完成
  ButtonGetFocus 按鈕獲得輸入焦點
  ButtonLostFocus按鈕失去輸入焦點
  StatusUpdate  更新媒體控制對象的狀態信息->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved