freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于delphi的視頻播放器設(shè)計(jì)-資料下載頁

2025-06-27 17:18本頁面
  

【正文】 r的版本信息、系統(tǒng)應(yīng)用信息、系統(tǒng)參數(shù)及有關(guān)網(wǎng)頁信息等等,甚至,我們還可以在此向用戶開放系統(tǒng)設(shè)計(jì)的源碼信息。在此方面的開發(fā),涉及到多項(xiàng)目開發(fā),我們只需要調(diào)用相應(yīng)的項(xiàng)目文件即可,其設(shè)計(jì)思想與播放列表的設(shè)計(jì)是相同的,對(duì)此我們沒有進(jìn)行深入的開發(fā),僅通過簡單的設(shè)計(jì),為用戶提供一定的版本信息而已。設(shè)計(jì)過程中,僅調(diào)用RealAudio的AboutBox事件即可,其設(shè)計(jì)程序代碼如下:Procedure (Sender: TObject)。Begin。End。 播放列表模塊功能實(shí)現(xiàn): 播放列表下含:曲目列表、曲目編輯、曲目控制及簡單的列表修飾等設(shè)計(jì)內(nèi)容。通過ListBox1組件,為曲目提供列表區(qū);曲目編輯包括:添加曲目、刪除曲目等基本項(xiàng),這里的曲目編輯功能的實(shí)現(xiàn)可通過前面系統(tǒng)菜單中的“播放列表編輯”菜單子項(xiàng)進(jìn)行反衍。例如“添加曲目”的實(shí)現(xiàn)代碼如下:Procedure (Sender: TObject)。Begin:=39。查找播放文件39。:=39。MPG(*.mpg)|*.mpg|39。+39。AVI(*.avi)|*.avi|39。+39。RA(*.ra)|*.ra|39。+39。RM(*.rm)|*.rm|39。+39。MP3(*.mp3)|*.mp3|39。+39。MIDI(*.midi)|*.midi|39。+39。WAV(*.wav)|*.wav|39。+39。DAT(*.dat)|*.dat|ALL(*.*)|*.*39。If then Begin 。 (ExtractFileName ())。 End。End。曲目控制含:基本的播放、暫停、停止等控制項(xiàng),同時(shí)還可以包括“播放前一首”、“播放下一首”以及“順序播放”、“重復(fù)播放”等等。在此,我們僅設(shè)計(jì)了“順序播放”與“播放/暫?!钡瓤刂祈?xiàng)。以下我們將列示“順序播放”的實(shí)現(xiàn)代碼,通過下面的代碼,可以發(fā)現(xiàn)這里的“順序播放”的程序代碼與菜單項(xiàng)中此功能的實(shí)現(xiàn)代碼有所出入:Procedure (Sender: TObject)。VarI: integer。Begin:=true。Nplaysel: =。I: = 。If i=0 then Begin :=[i]。 ()。 :=。 。 End。End。在以上程序段中,除“:=true?!迸c菜單項(xiàng)中的程序內(nèi)容相同,其余都是增添代碼。我們知道Timer1組件寄生于主窗體RealAudio中,且菜單項(xiàng)同樣寄生于主窗體當(dāng)中,在菜單中實(shí)現(xiàn)“順序播放”功能前,Timer1的OnTimer事件已經(jīng)為其功能的實(shí)現(xiàn)作了一定的準(zhǔn)備工作::= [nplaysel]。 ()。FNStr: =ExtractFileName ()。:=Copy (FNStr, 1, Length (FNStr)4以上語句都已集成于OnTimer事件之中了,需要注意的是:這里的曲目當(dāng)前索引是通過全局變量nplaysel來動(dòng)態(tài)獲得的,而在播放列表中的“順序播放”功能按鈕則不僅引用了全局變量nplaysel,同時(shí)還定義了局部變量i,通過這兩個(gè)變量來控制曲目索引。在理論上以下兩語句在程序中發(fā)揮著等同的作用。即::= [nplaysel]。等價(jià)于::=[i]。但在實(shí)際功能上,它們卻有著微妙的區(qū)別:局部變量i獲得的是通過鼠標(biāo)單擊選擇后,確定的當(dāng)前曲目索引,而全局變量nplaysel則在前面的主窗體OnCreate方法中進(jìn)行了初始化,即不通過鼠標(biāo)選擇,直接對(duì)播放列表中的已有曲目進(jìn)行順序播放控制,動(dòng)態(tài)確定的當(dāng)前索引。在前面我們說菜單項(xiàng)“順序播放”的實(shí)現(xiàn)代碼很簡捷,要得益于OnTimer的準(zhǔn)備工作,通過OnTimer事件,使得“順序播放”在沒有通過鼠標(biāo)的單擊選擇情況下,順序且循環(huán)播放列表中的現(xiàn)有曲目;同時(shí),ListBox1的單擊響應(yīng)事件OnClick也為其提供了必要的準(zhǔn)備,以下是ListBox1的OnClick事件代碼:Procedure (Sender: TObject)。BeginKk: =。End。在以上程序代碼中,同樣通過全局變量kk來獲得當(dāng)前曲目對(duì)應(yīng)的索引即:kk:=。也就是說當(dāng)鼠標(biāo)單擊選擇了曲目后,“順序播放”菜單項(xiàng)將控制曲目從鼠標(biāo)已選定曲目為首曲目進(jìn)行順序播放。 這里,我們不僅設(shè)計(jì)了ListBox1的單擊響應(yīng)事件,同時(shí)還設(shè)計(jì)了雙擊響應(yīng)事件,完善了播放列表中對(duì)曲目的控制功能。當(dāng)鼠標(biāo)雙擊播放列表中的曲目后,將選取所點(diǎn)擊的曲目且播放該曲目,以下為ListBox1雙擊響應(yīng)事件OnDblClick的程序代碼:Procedure (Sender: TObject)。VarI: integer。Begini: = 。Nplaysel: =。If i=0 then Begin :=[i]。 ()。 :=。 。 End。End。局部變量i即為鼠標(biāo)雙擊后所選曲目的對(duì)應(yīng)索引,而全局變量nplaysel則是為在鼠標(biāo)雙擊曲目并播放曲目后響應(yīng)“順序播放”控制而調(diào)用的。即以鼠標(biāo)雙擊曲目為順序播放曲目的首曲目并順序進(jìn)行曲目播放。 當(dāng)點(diǎn)擊“播放/暫?!惫δ馨粹o后,將播放/暫停鼠標(biāo)單擊選取的曲目或通過“選擇文件”選定的曲目文件,同時(shí)還可以暫停順序播放的曲目,當(dāng)暫停順序播放的曲目后,再次點(diǎn)擊此按鈕將繼續(xù)播放當(dāng)前曲目,至當(dāng)前曲目結(jié)束后,終止順序播放。以下為該功能按鈕的程序代碼:Procedure (Sender: TObject)。BeginIf kk=0 then Begin := [kk]。 ()。 :=。 End。 。 :=false。End。在上面的程序段中,全局變量kk不僅動(dòng)態(tài)的決定著順序播放過程中所對(duì)應(yīng)的當(dāng)前曲目索引,同時(shí)還決定著通過鼠標(biāo)單擊選取后的曲目索引。要對(duì)曲目進(jìn)行播放控制,在前面“播放”按鈕的代碼實(shí)現(xiàn)過程中,我們引用了OpenDialog1的打開文件名FileName,從而使得播放器獲得播放源。這里,我們是要播放ListBox1中的項(xiàng)目文件,而要想控制ListBox1的列表項(xiàng),我們只有通過ListBox1的Items屬性來實(shí)現(xiàn)。在ListBox1中,Items曲目索引對(duì)應(yīng)著的著列項(xiàng)字符串,這里的列項(xiàng)字符串正是我們添加曲目后,播放曲目名所對(duì)應(yīng)的字符串。通過程序子句::= [kk]。使得OpenDialog1獲得播放曲目名,即:給OpenDialog1的FileName屬性賦值。進(jìn)而通過OpenDialog1再次使得RealAudio1獲得播放源。即有子句: ()。調(diào)用RealAudio1的DoPlayPause事件,從而實(shí)現(xiàn)播放/暫停的控制切換。 在播放列表的修飾中,我們調(diào)用了圖象組件TImage。在程序開發(fā)過程中,TImage并沒有涉及到程序代碼的編寫,我們也沒有具體的應(yīng)用到其有關(guān)事件或方法,僅對(duì)其進(jìn)行相應(yīng)的屬性設(shè)置,即可達(dá)到我們的設(shè)計(jì)目的。在此我們不做過多的介紹。在論文附錄部分的組件屬性中將有所涉及,請(qǐng)參看本部分內(nèi)容。 關(guān)于TRealAudio組件調(diào)用說明:在默認(rèn)情況下Delphi7的ActiveX標(biāo)簽頁并沒有該組件,需要我們預(yù)先安裝,下面我們將對(duì)此加以介紹:在Delphi7的可視化編程環(huán)境中,選擇Component(組件)菜單下的“Import ActiveX Control...”(導(dǎo)入ActiveX控件)選項(xiàng),選中其中的“Real Player ActiveX Control Library()”項(xiàng),并單擊Install,會(huì)出現(xiàn)一個(gè)install窗口。如果要把它添加到一個(gè)已經(jīng)存在的包中,在“Into existing package”對(duì)話框中的“File name:”窗口中選擇欲安裝的路徑,并單擊“OK”;會(huì)彈出一個(gè)確認(rèn)的對(duì)話框,提示安裝信息“Package will be rebuilt. Continue?”,單擊“Yes”;在彈出的窗口中單擊“Install”,該控件就安裝完畢。如果要把它添加到一個(gè)新建的包中,在“Into new package”對(duì)話框中的 “File name: ”窗口中選擇欲安裝的路徑,并新建一個(gè)包,假如命名為test,并單擊“OK”;此時(shí)會(huì)提示“Package will be built. Continue?”,單擊“Yes”。 在彈出的窗口中單擊擊“Install”,該控件就安裝完畢。在以上的安裝過程結(jié)束后,會(huì)在組件面板的ActiveX標(biāo)簽頁上發(fā)現(xiàn)一個(gè)新的組件,名字為RealAudio;此時(shí),就可以通過ActiveX直接調(diào)用RealAudio到項(xiàng)目表單中了。2. 程序的調(diào)試通過使用RealPlayer,使得我們的向預(yù)期設(shè)計(jì)目標(biāo)邁進(jìn)了一大步,但在程序開發(fā)的后期,我們發(fā)現(xiàn)RealPlayer并非盡善完美。根據(jù)實(shí)際的需要,一般的軟件應(yīng)用程序應(yīng)該可以脫離實(shí)際的軟件開發(fā)平臺(tái),且不依賴于程序開發(fā)過程生成的項(xiàng)目文件或有關(guān)的系統(tǒng)資源文件。在調(diào)試過程中,我們將實(shí)際的應(yīng)用程序移植到其他系統(tǒng)中發(fā)現(xiàn)常伴有一些執(zhí)行異常現(xiàn)象并歸結(jié)為以下三種情況:其一,即應(yīng)用程序在其他安裝有Delphi7開發(fā)平臺(tái)但沒有安裝RealPlayer播放器的系統(tǒng)中,通過Delphi7打開應(yīng)用程序,編譯并運(yùn)行應(yīng)用程序,由于程序中應(yīng)用了系統(tǒng)不能識(shí)別的類,而發(fā)生常規(guī)錯(cuò)誤,導(dǎo)致程序無法正常運(yùn)行;其二,同樣是在安裝有Delphi7的系統(tǒng)中,直接啟動(dòng)應(yīng)用程序,由于應(yīng)用程序中帶有沒有注冊(cè)的類別,而導(dǎo)致程序無法啟動(dòng);其三,在脫離Delphi7開發(fā)平臺(tái)的系統(tǒng)中系統(tǒng)中(系統(tǒng)中裝有RealPlayer播放器),應(yīng)用程序可以運(yùn)行,但應(yīng)用程序在播放視頻類型文件時(shí)或其他類型文件時(shí),發(fā)生警告信息,導(dǎo)致程序異常。在對(duì)問題分析后,通過進(jìn)一步的程序調(diào)試認(rèn)為其錯(cuò)誤的根源在于——在程序開發(fā)過程中,程序中對(duì)第三方控件的調(diào)用。我們知道RealPlayer的功能是通過Delphi7為我們提供的ActiveX插件調(diào)用的,即在ActiveX組件面板中我們調(diào)用組件TRealAudio,通過編程及對(duì)TRealAudio屬性進(jìn)行設(shè)置最終實(shí)現(xiàn)RealPlayer的功能。在Delphi7中每個(gè)應(yīng)用組件必須在系統(tǒng)中預(yù)先注冊(cè),才可以在程序開發(fā)過程中調(diào)用組件并在可執(zhí)行程序運(yùn)行期間對(duì)組件識(shí)別。問題的難點(diǎn)最終集中在對(duì)組件TRealAudio的程序注冊(cè)上,在此我們可以結(jié)合ActiveX控件注冊(cè)的方法來實(shí)現(xiàn)。前面我們已經(jīng)提到:通過TRealAudio組件實(shí)現(xiàn)RealPlayer播放器的功能,而TRealAudio正是ActiveX類型組件之一,這里對(duì)TRealAudio組件的注冊(cè)可以說是ActiveX控件注冊(cè)的一個(gè)實(shí)例。以下,我們將就ActiveX控件注冊(cè)方法說明如下:一、對(duì)于未注冊(cè)過的ActiveX控件可使用此軟件對(duì)其進(jìn)行注冊(cè),外來ActiveX控件要應(yīng)用到自己的程序中也必須進(jìn)行注冊(cè)。該文件位于Windows目錄的system子目錄下。使用方法如下:點(diǎn)擊“開始”→“運(yùn)行”;在運(yùn)行對(duì)話框中輸入以下命令:regsvr32 文件名注冊(cè)一個(gè)ActiveX控件regsvr32 /u 文件名解除某ActiveX控件的注冊(cè)二、使用安裝程序制作軟件:InstallShield,但需要用戶手工注冊(cè),在不用時(shí)還得手工解除注冊(cè),因此,這對(duì)一個(gè)應(yīng)用程序來說并非好的解決方案。大型應(yīng)用軟件一般都有一個(gè)安裝程序,在安裝程序中解決ActiveX控件注冊(cè)是較為理想的一種方案。使用InstallShield可以制作出專業(yè)級(jí)的Setup,還可注冊(cè)其中的ActiveX控件;而且,在以后攜載軟件時(shí),可以自動(dòng)注銷掉以前注冊(cè)的ActiveX控件。方法如下:啟動(dòng)InstallShield,使用ProjectWizard建立一個(gè)新的項(xiàng)目;新建一個(gè)“FileGroup”,將需要注冊(cè)的ActiveX控件文件放入此“FileGroup”中;將上述“FileGroup”的“Self-Registered”屬性設(shè)置成“Yes”;三、在應(yīng)用程序中加入注冊(cè)代碼對(duì)于小型程序不宜采取第二種方法,較好的方法是在程序中嵌入注冊(cè)代碼,實(shí)現(xiàn)應(yīng)用程序自注冊(cè)。其編程方法是:使用WindowsAPI函數(shù)LoadLibrary載入ActiveX控件;使用GetProcAddress函數(shù)獲取ActiveX控件中注冊(cè)函數(shù)DllRegisterServer(注銷函數(shù)為DllUnregisterServer)指針;調(diào)用注冊(cè)函數(shù)DllRegisterServer(或注銷函數(shù)DllUnregisterServer);通過以上方法,在完成了以上的注冊(cè)過程后,有關(guān)TRealPlayer的組件信息就會(huì)出現(xiàn)在Windows中的注冊(cè)表中,此時(shí)在Delphi7中,我們就可以通過ActiveX對(duì)TRealAudio進(jìn)行調(diào)用了。在程序的總體界面設(shè)計(jì)、源程序代碼的編寫與程序的后期調(diào)試之后,我們就可以對(duì)程序進(jìn)行最終的編譯與運(yùn)行了。程序編譯成功后,將生成項(xiàng)目文件(.dpr)、單元文件(.pas)以及相關(guān)的資源文件如附錄中所示。如果出現(xiàn)編譯錯(cuò)誤,將在編譯信息狀態(tài)欄中給予對(duì)應(yīng)的錯(cuò)誤信息,結(jié)合錯(cuò)誤信息進(jìn)行程序的修改與調(diào)試,直到?jīng)]有任何錯(cuò)誤方可運(yùn)行可執(zhí)行程序。最終的程序執(zhí)行效果見附錄圖8。3. 結(jié)論 研究成果:對(duì)于本課題設(shè)計(jì),從最初的設(shè)計(jì)構(gòu)想到程序試設(shè)計(jì),從程序試設(shè)計(jì)到程序的最終完成再到程序的調(diào)試與運(yùn)行,在整個(gè)過程中,各個(gè)設(shè)計(jì)環(huán)節(jié)自己都是一步步認(rèn)真完成的,通過查閱相關(guān)資料,通過與導(dǎo)師探討等等,使自己學(xué)到了很多,當(dāng)然也獲得了諸多有價(jià)值的研究成果。這里就有關(guān)的研究成果我們總結(jié)如下:178。 在系統(tǒng)界面設(shè)計(jì)中,我們不僅設(shè)計(jì)了提示性按鈕“SELECT”和“PLAY”,迎合了習(xí)慣于使用提示性按鈕的用戶需求;同時(shí),我們還應(yīng)用Edit編輯框組件設(shè)計(jì)了播放器文本信息提示區(qū),從而彌補(bǔ)了RealAudio信息提示的不足,擴(kuò)展了系統(tǒng)功能;178。 在系統(tǒng)菜單中,通過“播放控制”中的“文件選擇”用戶可以在多種文件類型間進(jìn)行靈活的選擇與切換;同時(shí),我們還在“文件”菜單中設(shè)計(jì)了針對(duì)性類型文件的過濾與選擇,這可以使用戶直接定位到所需的類型文件,并通過選擇確定可直接打開所選定的文件
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1