多媒體播放器的設(shè)計(jì)_第1頁
多媒體播放器的設(shè)計(jì)_第2頁
多媒體播放器的設(shè)計(jì)_第3頁
多媒體播放器的設(shè)計(jì)_第4頁
多媒體播放器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

/目錄1vb簡介………………12多媒體播放器的開發(fā)設(shè)計(jì)…………22。1設(shè)計(jì)要求…………22.2設(shè)計(jì)方案…………22.3基本原理…………33設(shè)計(jì)方案的實(shí)現(xiàn)……………………54程序代碼……………55運(yùn)行結(jié)果……………106心得體會……………137參考資料……………141VB簡介Visual意為可視的、可見的,指的是開發(fā)像Windows操作系統(tǒng)的圖形用戶界面(GraphicUserInterface,GUI)的方法,它與其他編程軟件不同的是不需要編寫大量代碼去描述界面元素的外觀和位置,只要把預(yù)先建立好的對象拖放到屏幕上相應(yīng)的位置即可。應(yīng)該說,這是一次質(zhì)的飛躍,是一次編程技術(shù)的革命。Basic實(shí)際上是一個(gè)短語的縮寫,這個(gè)短語就是Beginners'All-PurposeSymbolicInstructionCode,其中文意思為“初學(xué)者通用符號指令代碼”。VisualBasic6有學(xué)習(xí)版、專業(yè)版和企業(yè)版三種版本,以滿足不同的開發(fā)需要。學(xué)習(xí)版適用于普通學(xué)習(xí)者及大多數(shù)使用VisualBasic開發(fā)一般Windows應(yīng)用程序的人員;專業(yè)版適用于計(jì)算機(jī)專業(yè)開發(fā)人員,包括了學(xué)習(xí)版的全部內(nèi)容功能以及Internet控件開發(fā)工具之類的高級特性;企業(yè)版除包含專業(yè)版全部的內(nèi)容外,還有自動(dòng)化構(gòu)件管理器等工具,使得專業(yè)編程人員能夠開發(fā)功能強(qiáng)大的組骨子里分布式應(yīng)用程序。隨著版本的提高,VisualBasic的功能也越來越強(qiáng)。自從5。0版,VisualBasic推出了中文版,與前個(gè)版本相比,其功能有了很大提升.但是,功能再強(qiáng)大,VisualBasic仍然有一個(gè)缺點(diǎn):在沒有MSVBVM**。DLL的計(jì)算機(jī)上必須安裝所需的DLL文件(同樣VisualC++在沒有MSVCRT*。DLL情況下亦無法運(yùn)行)。不過在Windows2000之后,這個(gè)DLL就被預(yù)置到操作系統(tǒng)中了,一般來說,程序如果只使用了VB內(nèi)部的控件和對象,基本上不會有太大的問題.在21世紀(jì)初,Microsoft公司推出VisualStudio.NET2003,它與VisualBasic之間有了重大變化,VisualStudio為各種編程工具做了一個(gè)平臺,Visua可在這種平臺上運(yùn)行。相對于傳統(tǒng)VB,有很大的不同。VB。Net首次使用.Net構(gòu)架進(jìn)行可視化編程,并且能很好地與COM構(gòu)架兼容,VisualStudio.NET2003應(yīng)用.NETFramework1.1。2005年VisualStudio2005則運(yùn)用了NET2.0的技術(shù),更加的方便了程序員的工作??墒切碌某绦?qū)ο到y(tǒng)配置要求也較高,需要微軟.NetFramework2.0以上的.Net構(gòu)架支持。2007年12月,微軟(Microsoft)推出了VisualStudio2008Beta2發(fā)生了重大的變化(見附圖)在代碼輸入的時(shí)候,可以比VB2005快很多,在非特殊的情況下,VB2008都會自動(dòng)開啟自動(dòng)完成關(guān)鍵字這個(gè)命令而且支持最新的.NETFramework3。5SP1Beta微軟開發(fā)了一系列有關(guān)VB的腳本語言:VisualBasicforApplications,即VBA,包含在微軟的應(yīng)用程序中(比如MicrosoftOffice),以及類似WordPerfectOffice這樣第三方的產(chǎn)品里面。VBA這樣嵌入在各種應(yīng)用程序中看起來有些矛盾,但是它的功能和VB一樣強(qiáng)大.VBScript是ASP的默認(rèn)語言,還可以用在Windows腳本編寫(ShellScript)和網(wǎng)頁編碼(HTML)中.盡管它的語法類似于VB,但是它卻是一種完全不同的語言。VBS不使用VB運(yùn)行庫運(yùn)行,而是由Windows腳本宿主(wscript。exe—MicrosoftWindowsBasedScriptHost)解釋執(zhí)行。這兩種語言之中的不同點(diǎn)影響ASP網(wǎng)站的表現(xiàn)。當(dāng)微軟準(zhǔn)備開發(fā)一種新的編程工具的時(shí)候,第一決定就是利用最搶手的VB6來進(jìn)行修改,或者就是重新組建工程開發(fā)新工具。微軟后來開發(fā)了VB的繼任者VisualBasic。NET,同時(shí)也是。NET平臺的一部分。VB.NET編程語言是一種真正的面向?qū)ο缶幊陶Z言(VB4—VB6只能稱為基于對象而不是面向?qū)ο?,最明顯的特征就是VB4—VB6都不支持類的繼承),和傳統(tǒng)VisualBasic并不完全兼容.[2]2多媒體播放器的開發(fā)設(shè)計(jì)2.1設(shè)計(jì)要求內(nèi)容:多媒體播放器是根據(jù)計(jì)算機(jī)用戶使用系統(tǒng)時(shí)的實(shí)際需求而開發(fā),完全能夠?qū)崿F(xiàn)用戶對計(jì)算機(jī)多媒體文件的查詢和播放.要求:根據(jù)多媒體播放器的要求,要求系統(tǒng)具有以下功能:選取多媒體文件;播放多媒體文件;停止播放多媒體文件;打開字幕功能;關(guān)閉字幕功能;打開CD驅(qū)動(dòng)器功能;關(guān)閉CD驅(qū)動(dòng)器功能;添加播放列表功能。2.2設(shè)計(jì)方案WindowsMediaPlayer控件(msdxm.ocx)支持的文件類型比較豐富,可以播放WAV、MID、MP3、WMA、AIF、ASF、MPEG、MPG、AVI、MOV、DAT、RMI等多媒體文件。在VB6.0SP5下利用這個(gè)控件實(shí)現(xiàn)自動(dòng)連續(xù)循環(huán)播放以及啟動(dòng)時(shí)自動(dòng)從上次退出時(shí)的文件處繼續(xù)播放多媒體文件的技術(shù)。多媒體技術(shù)的基本工作原理是:多媒體終端通過不同接入層網(wǎng)絡(luò)(固定NGN、移動(dòng)NGN、Internet),接入傳輸層IP分組網(wǎng)絡(luò),在控制層IMS/SoftSwitch等SIPProxy設(shè)備的控制下,通過業(yè)務(wù)層的邏輯控制實(shí)現(xiàn)多媒體業(yè)務(wù)及應(yīng)用。其結(jié)構(gòu)下圖所示:圖1多媒體結(jié)構(gòu)圖MPlayer是一款開源的多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如Linux和其他類Unix作業(yè)系統(tǒng)、微軟的視窗系統(tǒng)及蘋果電腦的MacOSX系統(tǒng)。MPl(wèi)ayer是建基于命令行界面,在各作業(yè)系統(tǒng)可選擇安裝不同的圖形界面。MPlayer是Linux上的最強(qiáng)大的電影播放器(也能跑在許多其它Unixs上,甚至非x86CPU上)。如今它也有了在微軟視窗操作系統(tǒng)和蘋果MacOS中的版本。它能使用眾多的本地的,XAnim,RealPlayer,和Win32DLL編解碼器,播放大多數(shù)MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,F(xiàn)ILM,RoQ文件.你還能觀看VideoCD,SVCD,DVD,3ivx,RealMedia,和DivX格式的電影(你根本不需要avifile庫)。MPlayer的另一個(gè)大的特色是廣泛的輸出設(shè)備支持。它可以在X11,Xv,DGA,OpenGL,SVGAlib,fbdev,AAlib,DirectFB下工作,而且你也能使用GGI和SDL(由此可以使用他們支持的各種驅(qū)動(dòng)模式)和一些低級的硬件相關(guān)的驅(qū)動(dòng)模式(比如Matrox,3Dfx和Radeon,Mach64,Permedia3).他們大多數(shù)支持軟件或者硬件縮放,因此能在全屏下觀賞電影。MPlayer還支持通過硬件MPEG解碼卡顯示,諸如DVB和DXR3與Hollywood+??梢允褂肊uropean/ISO8859—1,2(匈牙利語,英語,捷克語等等),西里爾語,韓語的字體的清晰放大并且反鋸齒的字幕(支持10種格式),和onscreendisplay(OSD)。MPlayer是Linux上一款非常優(yōu)秀的電影播放器,能夠播放大多數(shù)視頻文件,如MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ等。而且它的另一個(gè)優(yōu)點(diǎn)是可移植性好,現(xiàn)在常用的微軟的Windows平臺和蘋果的Mac平臺都有它的身影.不僅如此,Mplayer還可以移植到很多非X86的平臺上。2。3基本原理MCI(媒體控制接口)是Microsoft公司為實(shí)現(xiàn)Windows系統(tǒng)下設(shè)備無關(guān)性而提供的媒體控制接口標(biāo)準(zhǔn)。用戶可以方便地使用MCI控制標(biāo)準(zhǔn)的多媒體設(shè)備。MCI包含在Windows多媒體擴(kuò)展的MMSYSTEM模塊中,用來協(xié)調(diào)事件間以及MCI設(shè)備驅(qū)動(dòng)程序間的通訊,提供了與設(shè)備無關(guān)的接口屬性。通常應(yīng)用程序是通過指定一個(gè)MCI設(shè)備類型來區(qū)分MCI設(shè)備,設(shè)備類型指明了當(dāng)前實(shí)際使用設(shè)備的物理類型,不同的設(shè)備類型使用不同的控件屬性來進(jìn)行描述(見附表1)。從使用的控制方式上來說,MCI設(shè)備分為復(fù)合和簡單兩類。一個(gè)簡單MCI設(shè)備并不需要設(shè)備元素。例如,CD音頻和音碟機(jī)就是在一個(gè)已經(jīng)安裝好了的硬盤上工作的,它們不需要應(yīng)用程序?yàn)槠洳僮鞯拿襟w內(nèi)容提供任何信息.但對于復(fù)合的MCI設(shè)備,就需要應(yīng)用程序提供設(shè)備元素,即一個(gè)包含全部路徑名的源數(shù)據(jù)文件或目的文件。VisualBasic語言的CustomControl(用戶控制部件)概念體現(xiàn)了當(dāng)今軟件設(shè)計(jì)的發(fā)展潮流--面向?qū)ο蠹夹g(shù),編程者可以在VisualBasic的工具箱(Toolbox)中嵌入各式各樣五花八門的用戶控件,每個(gè)用戶控制部件都有一定的屬性和操作方法,編程者通過屬性的設(shè)置和方法的控制完成特定的功能。為了方便地控制多媒體,在專業(yè)版VisualBasic工具箱中提供了一個(gè)用于多媒體目的的用戶控件—-MCI。OCX。多媒體MCI控件MCI.OCX專用于對多媒體控制接口MCI設(shè)備的多媒體數(shù)據(jù)文件實(shí)施記錄和回放,從目的效果上來說,該控件通過一組按鈕來發(fā)出種種設(shè)備控制命令以實(shí)現(xiàn)對諸如:音頻面板、MIDI音序器、CD-ROM驅(qū)動(dòng)器、音頻CD播放機(jī)、錄像帶播放、錄音帶錄放等設(shè)備的控制。在VisualBasic程序設(shè)計(jì)時(shí),當(dāng)在表中加入多媒體MCI控件時(shí)(在工具箱內(nèi)雙擊MCI控件),則出現(xiàn)下列按鈕群:向前(Prev)、向后(Next)、播放(Play)、暫停(Pause)、返回(Back)、單步(Step)、停止(Stop)、記錄(Record)和出帶(Eject)。應(yīng)用程序?qū)CI的這組按鈕操作非常靈活方便,如當(dāng)我們打開一個(gè)MCI設(shè)備后,就可以根據(jù)該設(shè)備類型的屬性隨時(shí)從控件中選擇合適的狀態(tài)按鈕來表示即刻設(shè)備的物理狀態(tài).所有MCI控件可以有下列幾種方式來編程:⑴控件及其各按鈕的可見性和使能性;⑵可變或完全對控件進(jìn)行重新定義;⑶在一個(gè)窗口表格中可以同時(shí)控制多個(gè)設(shè)備。在VisualBasic3.0專業(yè)版中,多媒體控件MCI。OCX(在VisualBasic3.0和4.0中,多媒體控件的擴(kuò)展名為。VBX)是作為可選用部件提供的.為了使用它,首先要執(zhí)行File菜單命令,把Windowssystem目錄下的MCI。OCX加入到工具箱(Toolbox)中,這時(shí)會在工具箱中出現(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)一排灰色的媒體控制按鈕(九個(gè))。多媒體控件MCI.OCX包含有一組高級的與設(shè)備無關(guān)的控制命令。在使用該多媒體控件時(shí),首先用OPEN命令打開MCI設(shè)備(多媒體設(shè)備)并建立一個(gè)與之對應(yīng)的文件,以便來進(jìn)行錄或放等操作(但是對諸如CDAudio、VCR和錄像帶不能使用相應(yīng)文件)。一旦設(shè)備打開成功,就可以向它發(fā)出各種操作命令(見附表的按鈕命令)來完成指定的工作任務(wù)。最后記住,要用Close命令來關(guān)閉設(shè)備和數(shù)據(jù)文件。?使用MCI.OCX來進(jìn)行多媒體應(yīng)用程序開發(fā)是很方便的,因?yàn)榇蠖鄶?shù)屬性都是容易理解的,其中Command屬性尤為重要,它是在運(yùn)行過程中向多媒體設(shè)備發(fā)命令.格式為:

mand=cmdstring$

其中,cmdstring$變量是如下可執(zhí)行命令名:Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound和Save。一旦給其命令設(shè)置,它就立刻執(zhí)行,所發(fā)生的錯(cuò)誤存在Error屬性中。

下面以播放DEMO.WAV(波形文件)文件為例,說明VisualBasic多媒體應(yīng)用程序設(shè)計(jì)步驟。

首先,創(chuàng)建一個(gè)包含有多媒體控件(MCI.OCX)的表格(Form),于是屏幕上顯示出形狀類似錄音機(jī)的控制鍵,不過這時(shí)多媒體控制部件是不能馬上拿來用的(各鍵呈灰色),須通過程序代碼來改變鍵的狀態(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。"c:windowss

Mmdatademo.wav"

mand=”Open"

EndSub3設(shè)計(jì)方案的實(shí)現(xiàn)3。1自動(dòng)連續(xù)循環(huán)播放多個(gè)文件通過對通用對話框控件(COMDLG32.OCX)的有關(guān)屬性進(jìn)行設(shè)置,可實(shí)現(xiàn)按選擇的文件類型在列表框中顯示符合條件的文件,用戶可在該列表框中顯示符合條件的文件,用戶可在該列表框中選擇一個(gè)文件,或選擇連續(xù)或不連續(xù)的幾個(gè)文件,若選擇了多個(gè)文件,則按順序連續(xù)循環(huán)播放。開始播放后,組合框和窗體的標(biāo)題欄同時(shí)顯示正在播放文件的文件名。3.2自動(dòng)記憶播放目錄和正在播放的文件的路徑退出播放器時(shí),程序自動(dòng)將用戶選擇的目錄保存到Windows的注冊表中,以便下次選擇要播放的文件時(shí),在打開對話框中,直接顯示的是上次選擇的目錄。同時(shí),自動(dòng)將用戶選擇的文件清單保存到文件中,以便下次啟動(dòng)該程序時(shí),可以直接從退出時(shí)正在播放的那個(gè)文件開始繼續(xù)播放,這樣就能實(shí)現(xiàn)每次啟動(dòng)播放器,首先播放的是上次退出時(shí)播放的那個(gè)文件。這樣做就使程序具有了記憶功能。3.3用戶自定義播放順序單擊下一首按鈕,開始播放下一個(gè)文件,單擊上一首按鈕,開始播放上一個(gè)文件。單擊暫停按鈕,則播放器暫停播放,同時(shí)暫停按鈕變?yōu)殚_始按鈕,單擊開始按鈕,播放器從暫停處繼續(xù)播放,同時(shí)開始按鈕恢復(fù)為暫停按鈕。單擊組合框右邊的下拉箭頭,可以看到正在播放的文件列表,要想換一個(gè)文件播放,直接單擊文件名即可。用戶也可以直接打開播放列表文件,用文本編輯器編輯播放文件的順序.程序代碼4。1界面布局設(shè)計(jì)新建一個(gè)窗體Forml,在上面畫一個(gè)組合框Combol,設(shè)置其Style屬性2—DropdownList,畫五個(gè)命令按鈕(打開、暫停、關(guān)閉、上一首、下一首),一個(gè)通用對話框(CommonDialog)控件,一個(gè)媒體播放器(WindowsMediaPlayer)控件.調(diào)整好控件在窗體中的位置。4。2系統(tǒng)初始化PrivateDeclareFunctionGetSystemDirectoryLib″Kernel32″Alias″GetSystemDirectoryA″(ByValpBufferAsString,ByValnSizeAsLong)AsLong返回Win2dows\system所在的文件夾PrivateWinSysPathAsStringPrivateSelectFName(1000)AsStringPrivateSelectNumAsInteger,NextPlayingAsIntegerPrivatePreviousPathAsString此變量保存用戶上次選擇的目錄,其值保存在Windows注冊表中4.3自動(dòng)從上次退出時(shí)的文件處繼續(xù)播放要實(shí)現(xiàn)此功能,可以在窗體的Load事件中編寫如下代碼:Dimtmp1AsStringDimtmp2AsIntegerMediaPlayer1.AutoRewind=TrueMediaPlayer1.AutoStart=TrueMediaPlayer1.ShowStatusBar=TrueMediaPl(wèi)ayer1。ShowDisplay=TrueMediaPl(wèi)ayer1.AutoSize=FalseCombo1.Locked=FalsePreviousPath=GetSetting(″MyPlayer″,″PlayMM″,″LastPath″,″NoData″)以下代碼將上次選擇的多媒體文件(保存在WinSysPat(yī)h中)讀出來,放SelectFName數(shù)組中,并開始播放tmp1=Space(260)tmp2=GetSystemDirectory(tmp1,Len(tmp1))WinSysPath=Left(tmp1,tmp2)WinSysPath=WingSysPath+″\Inventory.txt″Inventory.txt文件保存正在播放文件的列表。OnErrorGoToErrhandlerSelectNum=0NextPlaying=-1O(jiān)penWinSysPathForInputAs#1DoWhileNotEOF(1)LineInput#1,SelectFName(SelectNum)\ComboL(fēng).AddltemMid(SelectFName(Select2Num),InStrRev(SelectFName(SelectNum),″\N)+1)SelectNum=SelectNum+1LoopClose#1MediaPlayerlEndOfStream(0&)Errhandler:IfCombol.ListCount=0Then′Inventory.txt文件不存在或播放列表為空Combol。List(0)=“沒有可選項(xiàng)目”EndIfCombol.Listlndex=04。4選擇播放序列PrivateSubCommand1Click()DimFNameAsStringDimiAsInteger,jAsIntegerDimThePathAsStringDimtmpAsStringCommonDialog1。CancelError=TrueOnErrorGoToErrhandler允許多選,所有選擇的文件名之間用空格分隔,保存在中CommonDialogl。Flags=cdlOFNAllowMultiselectCommonDialogl.InitDir=IIf(PreviousPath=″o2Data″,″C:\WINDOWS″,PreviousPath)CommonDialogl。Filter=″3。mpeg|3.mpeg|3.mpg|3.mpg|3.a(chǎn)vi|33.AVI|3。wav|3。WAV|3.mid|3。MID|3。mp3|3。MP3|3。mov|3.MOV|3.dat|3.DAT|3.RMI|3.rmi|3。3|3.3″CommonDialogl.Max=32767當(dāng)同時(shí)選擇許多文件時(shí)默認(rèn)的260放不下,故要大點(diǎn),這是最大的值CommonDialog1.ShowOpenFName=CommonDialogl。下面代碼將選擇的若干文件名分開,放在數(shù)組SelectFName中IfInStr(FName,Chr(32))=0Then′若只選擇一個(gè)文件,FName中沒有空格,否則文件名之間用空格分隔,若文件在根日錄,則路徑形如E:\,否則形如E:\abc\123SelectNum=1SelectFName(0)=FNameThePath=Left(Fname,InStrRev(Fname,″\″)—1)ElseThePath=Left(FName,InStr(FName,Chr(32))-1)+″\″FName=Mid(Fname,InStr(Fname,Chr(32))+1)SelectNum=0J=1tmp=Space(0)Fori=1ToLen(FName)IfMid(FName,i,1)=Chr(32)ThenSelectFName(SelectNum)=ThePath+tmpSelectNum=SelectNum+1tmp=Space(0)Elsetmp=tmp+Mid(FName,i,1)EndIfNextiSelectFName(SelectNum)=ThePath+tmpSelectNum=SelectNum+1EndIf’分隔結(jié)束Combol.ClearFori=0ToSelectNum-1此循環(huán)將選中的文件顯示在組合框中Combol.AddltemMid(SelectFName(i),In2StrRev(SelectFName(i),″\″)+1)NextiCombol.Listlndex=0NextPlaying=0Me.Caption=Combol.TextMediaPlayerl。=SelectFName(0)SaveSetting″MyPlayer″,″PlayMM″,″LastPat(yī)h″,″ThePath″Errhandler:EndSub4。5暫停播放PrivateSubCommand2Click()IfCommand2.Caption=“暫?!保詇enCommand2.Caption=“開始”MediaPlayerl.StopElseCommand2.Caption=“暫停”MediaPlayerl.PlayEndIfEndSub4.6關(guān)閉播放器退出之前,將用戶選中的文件保存起來,以便下一次啟動(dòng)該程序時(shí),可以直接從保存時(shí)的文件開始繼續(xù)播放,為了做到這一點(diǎn),在將播放列表寫入文件時(shí),必須讓正在播放的那個(gè)文件首先寫入文件中,然后是它后面的,到底后再繞回來,按這個(gè)順序?qū)懭?。因?yàn)槌绦騿?dòng)后,是按文件電的列表順序從前向后進(jìn)行播放的,故每次啟動(dòng)都省先播放的是退出之前播放的那個(gè)文件。PrivateSubCommand3Click()DimtmplAsIntegerOnErrorGoToErrhandlertmp1=0OpenWinSysPat(yī)hForOutputAs#1DoWhiletmpl〈SelectNumPrint#1,SelectFName(NextPlaying)tmp1=tmp1+1NextPlaying=(NextPlaying+1)ModSelect2NumLoopClose#IErrhandler:UnloadMeEndSub4。7上一首PrivateSubCommandoClick(yNextPlaying=IIf(NextPl(wèi)aying-1〈0,Select2Num—2,NextPlaying—2)MediaPl(wèi)ayerl-EndOfStream(0&)EndSub4.8下一首PrivateSubCommandsClick()MediaPlayerlEndOfStream(0&)EndSub4.9在組合框中選擇播放文件PrivateSubCombolClick()NextPlaying=Combol.Listlndex-1MediaPlayerlEndOfStream(0&)EndSub4。10卸載播放器PrivateSubFormQueryUnload(CancelAsInte2ger,UnloadModeAsInteger)Command3ClickEndSub4.11切換文件PrivateSubMediaPlayerl-EndOfStream(ByVal2ResultAsLong)播放文件結(jié)束時(shí)觸發(fā)此事件OnErrorGoToErrhandlerNextPlaying=(NextPlaying+1)ModSelectNumMediaPl(wèi)ayerl.=SelectFName(NextPl(wèi)aying)Combol.Listlndex=NextPl(wèi)ayingMe.Caption=Combol.TextCommand2。Enabled=TrueCommand2.Caption=“暫?!盓rrhandler:EndSub//DynSplitView2。cpp:implementationfile//5運(yùn)行結(jié)果Mplayer是我們所設(shè)計(jì)的多媒體播放器的核心,它支持的視頻格式直接影響到整個(gè)播放器的性能。下面將從這方面入手,對它的性能進(jìn)行必要的測試.Mplayer的解碼庫是它支持的視頻格式的決定因素。在X86平臺的Linux操作系統(tǒng)中,Mplayer擁有豐富的解碼庫,但是很大一部分都是以非開源的形式提供的。所以將Mplayer移植到OMAP3530平臺后,僅僅有為數(shù)不多的幾個(gè)開源的庫可以繼續(xù)使用.移植以后的Mplayer的視頻解碼器包括FFmpegDivX/libavcodec、libmpeg2和XviD等比較常用的庫,可以支持H263、MJPEG、RV10、DivX3、DivX4、DivX5、MP41、MP42、WMV1、WMV2、HuffYUV以及MPEG和AVI編碼格式編碼的視頻流。而通俗的講,常見的媒體類型,除了RM格式和QuickTime格式以外,移植后的Mplayer基本都可以支持的。下面是播放各種格式視頻的截圖:圖2播放flv格式視頻圖3播放avi格式視頻圖4播放mpeg格式視頻圖5播放mpg格式視頻6心得體會學(xué)習(xí)VB程序設(shè)計(jì)的方法保持良好的學(xué)習(xí)心態(tài),要有自信,自強(qiáng),積極主動(dòng)學(xué)習(xí).克服畏難情緒,樹立學(xué)好程序設(shè)計(jì)的信心要有良好的學(xué)習(xí)習(xí)慣。VB程序設(shè)計(jì)的入門學(xué)習(xí)并不難,但卻是一個(gè)十分重要的過程,因?yàn)槌绦蛟O(shè)計(jì)思想就在這時(shí)形成的,良好的程序設(shè)計(jì)習(xí)慣也在這個(gè)階段養(yǎng)成。學(xué)習(xí)程序設(shè)計(jì)要注重理解一些重要的概念。VB程序設(shè)計(jì)本身并不復(fù)雜,翻開一本程序設(shè)計(jì)學(xué)習(xí)的書籍,看到的無非就是變量,函數(shù),條件語句,循環(huán)語句等概念.但要真正能進(jìn)行程序設(shè)計(jì),需要深入理解這些概念.因此,在程序入門階段還是應(yīng)該重視概念的學(xué)習(xí).程序設(shè)計(jì)入門階段要經(jīng)常自己動(dòng)手抄寫或編寫一些小程序,親自動(dòng)手進(jìn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論