《Visual Basic程序設(shè)計教程(第3版)》第8章多媒體編程基礎(chǔ)_第1頁
《Visual Basic程序設(shè)計教程(第3版)》第8章多媒體編程基礎(chǔ)_第2頁
《Visual Basic程序設(shè)計教程(第3版)》第8章多媒體編程基礎(chǔ)_第3頁
《Visual Basic程序設(shè)計教程(第3版)》第8章多媒體編程基礎(chǔ)_第4頁
《Visual Basic程序設(shè)計教程(第3版)》第8章多媒體編程基礎(chǔ)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第8章多媒體編程基礎(chǔ)第8章多媒體編程基礎(chǔ)28.1多媒體控件8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序8.3應(yīng)用OLE開發(fā)多媒體應(yīng)用程序8.4應(yīng)用案例與設(shè)計—簡單視頻播放器的設(shè)計8.1多媒體控件1.Mmcontrol控件的添加Mmcontrol控件不是標準控件,并沒有放在工具箱上,而是以名為MCI32.ocx的文件形式,存放在\Windows\System子目錄下,在使用前需把它加載到工具箱上2.Mmcontrol控件的用途Mmcontrol控件是一個支持32位操作的多媒體控件,使用它無須介入實際的設(shè)備,就可以操縱所有的多媒體設(shè)備。8.1多媒體控件(續(xù))圖8.1Mmcontrol控件8.1多媒體控件(續(xù))3.Mmcontrol控件的常用屬性Devicetype屬性Filename屬性Command屬性Length屬性From與To屬性Position屬性Notify屬性UpdateInterval屬性8.1多媒體控件(續(xù))4.Mmcontrol控件的事件響應(yīng)Click事件GotFocus事件LostFocus事件Done事件StatusUpdate事件5.使用Mmcontrol控件的編程方法8.1多媒體控件(續(xù))【例8.1】用Mmcontrol控件的多媒體功能設(shè)計一個播放聲音、MIDI文件的播放器,并具有自動重播和顯示進度的功能。(1)在窗體上創(chuàng)建一個Mmcontrol控件、3個命令按鈕,Cmdwave和Cmdmidi分別用來播放聲音和MIDI文件,Cmdexit用來停止播放,其Caption屬性分別設(shè)置為“Wave”、“MIDI”、“Exit”。創(chuàng)建一個Autoloop復(fù)選框,用于選擇是否自動重復(fù)播放,2個文本框用于顯示播放文件的長度和當(dāng)前位置,窗體的標題動態(tài)顯示時間,如圖8.2所示。8.1多媒體控件(續(xù))圖8.2Mmcontrol

多媒體控件應(yīng)用8.1多媒體控件(續(xù))多媒體控件Mmcontrol1的Notify屬性設(shè)置為True,以便播放一個文件結(jié)束響應(yīng)Done事件;UpdateInterval屬性設(shè)置為200微秒,以便在200微秒時間間隔內(nèi)自動激活StatusUpdate事件。8.1多媒體控件(續(xù))(2)打開代碼窗口,創(chuàng)建過程代碼。播放聲音文件的事件過程如下:PrivateSubCmdwave_Click()Mmcontrol1.Command="Close"Mmcontrol1.Devicetype="Waveaudio"Mmcontrol1.Filename="C:\Win98\Media\Logoff.Wav"Mmcontrol1.Command="Open"Mmcontrol1.Command="Play"

Cmdmidi.Enabled=FalseEndSub8.1多媒體控件(續(xù))播放MIDI的事件過程如下:PrivateSubCmdmidi_Click()Mmcontrol1.Command="Close"Mmcontrol1.Devicetype="Sequencer"Mmcontrol1.Filename="D:\Wfffgz\Temp\Camyon.Midi"Mmcontrol1.Command="Open"Mmcontrol1.Command="Play"

Cmdwave.Enabled=FalseEndSub8.1多媒體控件(續(xù))停止播放的事件過程如下:PrivateSubCmdexit_Click()Mmcontrol1.Command="Stop"Mmcontrol1.Command="Close"EndSub8.1多媒體控件(續(xù))創(chuàng)建自動重復(fù)播放DONE事件過程如下:PrivateSubMmcontrol1_DONE(NOTIFYCODEASINTEGER)IfMmcontrol1.POSITION=Mmcontrol1.LENGTHTHENMmcontrol1.Command="Prev"′如果到達文件末尾,則倒帶

IfAutoloop.Value=1Then′如果選擇自動播放

Mmcontrol1.Command="Play"ENDIfENDIfEndSub8.1多媒體控件(續(xù))由于將Mmcontrol1控件的Notify屬性設(shè)置為True,則當(dāng)一個Play命令執(zhí)行完后響應(yīng)Done事件,若已選擇自動重復(fù)播放,執(zhí)行該事件過程,自動重復(fù)播放多媒體文件。利用Mmcontrol控件的StatusUpdate事件,能對控件的運行狀態(tài)進行跟蹤,事件過程如下:PrivateSubMmcontrol1_Statusupdate()Form1.Caption=Time$′顯示變化時間

Text1.Text="文件長度"&Mmcontrol1.LengthText2.Text="當(dāng)前位置"&Mmcontrol1.PositionEndSub8.1多媒體控件(續(xù))Position屬性值在播放過程中是變化的,必須加入定時器才能顯示動態(tài)的數(shù)值。由于已將Mmcontrol1控件的UpdateInterval屬性設(shè)置為200微秒,StatusUpdate事件在時間間隔200微秒會自動激活,類似于定時器,能對控件的運行進行跟蹤。另外,利用Mmcontrol控件的StatusUpdate事件,計時是從開始Play時算起的。如果利用Timer控件定時,則計時是從程序運行時算起的,所以前者更適用。8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序API(ApplicationProgrammingInterface)應(yīng)用程序編程接口。WindowsAPI是作為Windows的一部分函數(shù)集合,都放在動態(tài)鏈接庫DLL(DynamicLinkLibrary)中8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))1.API函數(shù)的調(diào)用(1)DeclareFunction函數(shù)名Lib"庫名“(Byval

參數(shù)1As類型,…,Byval參數(shù)nAs類型)As類型(2)DeclareSub子程序名Lib"庫名“(Byval參數(shù)1As類型,…,Byval參數(shù)nAs類型)8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))例如,若調(diào)用Sndplaysound()播放聲音的API函數(shù),聲明如下:DeclareFunctionSndplaysound

Lib"Mmsystem"(Byval

Soundnameas

String,ByvalFlagsAsInteger)

AsInteger8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))2.API瀏覽器加載API瀏覽器,以便在VisualBasic工作界面中,隨時打開API瀏覽器。【例8.2】編寫使用API函數(shù)畫圓角矩形函數(shù)和播放.wav文件的程序。8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))使用API函數(shù)中的Roundrect函數(shù)可以畫圓角矩形,使用Sndplaysound過程,可以播放.wav文件,設(shè)計步驟如下:(1)用API瀏覽器找到名為Roundrect的函數(shù)和名為Sndplaysound的過程,把它們的聲明插入到窗體的通用說明欄中。PrivateDeclareFunctionsndPlaySoundLib"winmm.dll"Alias"sndPlaySoundA"(ByVal

lpszSoundNameAsString,ByVal

uFlagsAsLong)AsLongPrivateDeclareFunctionRoundRectLib"gdi32"(ByVal

hdcAsLong,ByValX1AsLong,ByValY1AsLong,ByValX2AsLong,ByValY2AsLong,ByValX3AsLong,ByValY3AsLong)AsLong8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))(2)在窗體上增加畫圓角矩形和播放文件兩個命令按鈕,代碼如下:PrivateSubCommand1_Click()'畫圓角矩形按鈕

ClsForI=0To25

Forecolor=RGB(255,I*10,I*15)d=Roundrect(Hdc,70+I,30-I,240-I,120+I,50+I,50+I)'調(diào)用RoundRect函數(shù)

NextIEndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubCmdplay_Click()'播放文件按鈕

DimSoundfileAsStringDimResultAsLong

Soundfile=Dir("C:\Windows\Media\"&"*.wav")'指定要播放的文件

Result=Sndplaysound(Soundfile,1)'調(diào)用Sndplaysound函數(shù)EndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))3.使用MCI高級函數(shù),編寫多媒體應(yīng)用程序在Windows的DLL動態(tài)鏈接庫中,提供了100多個具有多媒體處理能力的API函數(shù)Windows還提供3個與MCI有關(guān)的高級函數(shù):Mciexecute()、Mcisendcommand()、Mcisendstring()8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))Mciexecute()函數(shù)DeclareFunctionMciexecuteLib"Winmm.Dll"(ByvalIpstrcommandAsString)AsLong其中,Ipstrcommand是一個MCI命令字符串,常用的6個MCI命令:Open命令、Close命令、Play命令、Stop命令、Seek命令、Set命令8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))【例8.3】用Mciexecut()函數(shù)制作CD播放器。(1)用API瀏覽器將Mciexecute()函數(shù)的聲明復(fù)制到窗體的通用說明欄中。PrivateDeclareFunctionMciexecute

Lib"Winmm.Dll"(Byval

IpstrcommandAsString)AsLong(2)按如圖8.7所示設(shè)置控件,并編寫事件過程。8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))圖8.7CD播放器8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubForm_Load()Commad1.Enabled=True′使打開按鈕有效

Commad2.Enabled=FalseCommad3.Enabled=FalseCommad4.Enabled=TrueEndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubCommand1_Click()

Mciexecute"OpenCdaudioAliasCd" ′打開CD設(shè)備

Commad1.Enabled=FalseCommad2.Enabled=TrueCommand2_ClickEndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubCommand2_Click()

Mciexecute"PlayCD"′播放CD音樂

Commad2.Enabled=FalseCommad3.Enabled=TrueEndSubPrivateSubCommand3_Click()

Mciexecute"StopCD" ′停止播放

Commad1.Enabled=TrueCommad2.Enabled=FalseEndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubCommand4_Click()

Mciexecute"CloseCD" ′關(guān)閉CD設(shè)備

Commad1.Enabled=TrueEndSub8.2調(diào)用API函數(shù)設(shè)計多媒體應(yīng)用程序(續(xù))PrivateSubOption1_Click(IndexAsInteger)

Mciexecute"SetCDAudioAllOff"′靜音

SelectCaseIndexCase0

Mciexecute"SetCDAudioLeftOn“′左聲道

Case1

Mciexecute"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論