版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度綜合金融服務(wù)合同
- 2024年度員工福利費用共享協(xié)議
- 關(guān)于2022學(xué)生頂崗實習(xí)心得范文大全
- 傳統(tǒng)節(jié)日演講稿范文
- 2024年商場美食廣場招商合同
- 2024年度坂田二期公交車消防設(shè)備升級及安裝合同
- 2024年工程項目合作框架協(xié)議
- 2024年度玻璃購銷協(xié)議
- 語法副詞課件教學(xué)課件
- 2024年度網(wǎng)絡(luò)文化傳播合同
- 2024年上海市普通高中學(xué)業(yè)水平等級性考試(物理)附試卷分析
- 服務(wù)營銷《(第6版)》 課件 第5章 服務(wù)產(chǎn)品與服務(wù)品牌
- 甘肅省慶陽市2023-2024學(xué)年六年級上學(xué)期語文期中試卷(含答案)
- 廣州中醫(yī)藥大學(xué)-中藥學(xué)模擬試題
- 2024年高考政治考試題海南卷及參考答案
- 食品供應(yīng)商遴選制度(一)
- 吉林旅游外宣翻譯策略探析
- 六年級語文小課題研究
- 廣告宣傳物料投標方案(技術(shù)方案)
- 天津市一中2024-2025學(xué)年高一語文上學(xué)期期中試題含解析
- 小紅書種草營銷師認證考試題附有答案
評論
0/150
提交評論