基于VC的媒體播放器設計與功能實現 畢業(yè)論文_第1頁
基于VC的媒體播放器設計與功能實現 畢業(yè)論文_第2頁
基于VC的媒體播放器設計與功能實現 畢業(yè)論文_第3頁
基于VC的媒體播放器設計與功能實現 畢業(yè)論文_第4頁
基于VC的媒體播放器設計與功能實現 畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、安徽新華學院本科畢業(yè)論文設計 本科畢業(yè)論文設計題目:基于VC的媒體播放器設計與功能實現 姓 名: 學 號: 0942057102 專 業(yè): 電子信息科學與技術 院 系: 電子通信工程 指導老師: 職稱學歷: 助教 研究生 完成時間: 教務處制安徽新華學院本科畢業(yè)論文設計獨創(chuàng)承諾書本人按照畢業(yè)論文設計進度方案積極開展實驗調查研究活動,實事求是地做好實驗調查記錄,所呈交的畢業(yè)論文設計是我個人在導師指導下進行的研究工作及取得的研究成果。據我所知,除文中特別加以標注引用參考文獻資料外,論文設計中所有數據均為自己研究成果,不包含其他人已經發(fā)表或撰寫過的研究成果。與我一同工作的同志對本研究所做的工作已在論

2、文中作了明確說明并表示謝意。畢業(yè)論文設計作者簽名: 日期: 基于VC的媒體播放器設計與功能實現 摘 要目前常見的多媒體軟件應該說各有特點,但幾乎每一個都存在著不如人意的地方。我的主題是“媒體播放器軟件設計基于VC開發(fā)工具,首先介紹目前一些媒體和媒體播放器,然后介紹了一種由本人設計的多媒體播放器MediaPlayer?;趘c播放器,使用系統(tǒng)MCIMedia控制接口命令接口編程,具有體積小,支持的格式,占用系統(tǒng)資源少,支持播放列表編輯器,支持多種視頻格式等功能優(yōu)勢。關鍵詞:播放器;MCI;播放列表;音頻;視頻 Media player design and function realizatio

3、n based on vcAbstractCommon multimedia software should have their own characteristics, but almost every no satisfactory way. My topic is media player software design development tool based on VC+, the first is the existing media and media player, and a multimedia playing their detailed design of med

4、ia player. Game player is an integrated development environment based on MFC, using the system MCI (Media controller interface) command interface programming, is small, support multiple format, occupying less system resources to support the playlist editor, support a variety of video formats such as

5、 functional advantages. Keywords: media player; MCI; play l ist; audio; video 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc29866 1緒 論 PAGEREF _Toc29866 1 HYPERLINK l _Toc483 PAGEREF _Toc483 1 HYPERLINK l _Toc21709 PAGEREF _Toc21709 1 HYPERLINK l _Toc17816 PAGEREF _Toc17816 1 HYPERLINK l _Toc26518 PAGEREF _To

6、c26518 2 HYPERLINK l _Toc29173 PAGEREF _Toc29173 2 HYPERLINK l _Toc32646 PAGEREF _Toc32646 21. HYPERLINK l _Toc11620 2媒體格式簡介. PAGEREF _Toc11620 31. HYPERLINK l _Toc21957 2.1什么是WMF SDK PAGEREF _Toc21957 31. HYPERLINK l _Toc32322 2.2 WMF SDK體系結構 PAGEREF _Toc32322 31. HYPERLINK l _Toc29239 2.3 生成器結構 PA

7、GEREF _Toc29239 31. HYPERLINK l _Toc22914 2.4 讀取器結構 PAGEREF _Toc22914 41. HYPERLINK l _Toc9235 2.5 WMF SDK編程開發(fā)環(huán)境配置 PAGEREF _Toc9235 4 HYPERLINK l _Toc6328 2 軟件開發(fā)與設計 PAGEREF _Toc6328 5 HYPERLINK l _Toc19750 2.1設計思路 PAGEREF _Toc19750 5 HYPERLINK l _Toc26604 2.2設計步驟 PAGEREF _Toc26604 7 HYPERLINK l _Toc

8、2085 2.3界面設計 PAGEREF _Toc2085 10 HYPERLINK l _Toc28675 2.4關鍵功能的實現 PAGEREF _Toc28675 13 HYPERLINK l _Toc26814 3 系統(tǒng)測試 PAGEREF _Toc26814 223. HYPERLINK l _Toc13399 1測試目的 PAGEREF _Toc13399 223. HYPERLINK l _Toc25295 2測試環(huán)境 PAGEREF _Toc25295 223. HYPERLINK l _Toc26 3檢測報告 PAGEREF _Toc26 223. HYPERLINK l _T

9、oc883 4測試結果 PAGEREF _Toc883 244 HYPERLINK l _Toc10315 結 論. PAGEREF _Toc10315 27 HYPERLINK l _Toc10315 致 謝. PAGEREF _Toc10315 28 HYPERLINK l _Toc6320 參考文獻. PAGEREF _Toc6320 261 緒 論多媒體技術的概念及多媒體技術在十九年代早期的應用,經過十年多的開展,隨著計算機科學的開展和網絡的普及和多媒體技術的開展,已成為計算機領域的一個熱點技術的開展,各種媒體格式的視圖,如何簡單和方便的播放各種媒體已經成為人們普遍關注的問題,和媒體播

10、放器的開發(fā)已非常重要。1.1課題研究的目的和技術開展的現狀.1研究本課題的目的隨著技術的開展,多媒體素材類型也有所增加,包括音頻,視頻,圖像,動畫,音頻和視頻,因為圖像和其他大的信息容量,在過去的硬件限制,多媒體應用并不廣泛,隨著硬件技術的不斷提高,多媒體技術已廣泛用于各類人才。多媒體課件,網絡課程的開展,網站,軟件,工程管理和要求的多媒體材料的使用,所以為多媒體的開展準備了一個實際的意義,與其他多媒體播放器相比,這是一個強大的媒體播放器,占用空間小,它是密切結合現有的多媒體資源的應用現狀,不僅具有直觀感強,不失一般性。微軟公司于1998推出的Visual C + + 6,它是一個平臺,支持W

11、in32應用程序應用程序,效勞效勞和控制控制的可視化編程的集成環(huán)境。并用VC+ 5最大的區(qū)別是,它有更強大的功能,MSDN微軟開發(fā)的網絡提供VC+ 6包括所有微軟程序產品在線幫助;此外,可用的對象的成員函數的參數類型的類成員變量和成員函數,并可以在屏幕上動態(tài)地顯示,使用戶不用記得那些復雜的無聊的函數名和復雜的參數,使編程更容易使用。VC + + 6是微軟的旗艦產品,功能強大且編程獲得程序的偏好。多媒體技術進行了以下方面的有效應用:多媒體管理信息系統(tǒng),顯示系統(tǒng)。多媒體電子出版物標題。 計算機輔助教學,教育和培訓的設計與制作;電腦藝術;電腦游戲娛樂;雙向電影;協同工作。有三個主要趨勢:進一步提高計

12、算機支持的協同工作環(huán)境下的智能;多媒體技術;多媒體信息實時處理和壓縮算法集成到CPU。 根據研究,基于VC的MFC對話框的媒體播放器的開發(fā),利用Windows MCI媒體控制接口處理控件,VC 6與ActiveX控件activemoviecontrol對象來實現各種格式的媒體播放和程序界面。首先確定所要解決的問題是明確的名稱的MCI函數和命令的消息類型和功能;其次是流媒體的具體過程的分析,在公開的媒體裝置的應用需要做的事情,所以在參加過程支持代碼的應用程序;一個粗略的輪廓,在應用程序的程序最好的畫流程圖,開始考慮設計程序框架,設計應用程序的外觀;最后也是最關鍵的是編寫代碼以顯示此功能的媒體播放

13、器的根本實現,再次是程序的調試和完善。本課題中的重點是在ActiveMovie控件的應用,動態(tài)控制EM電影是微軟公司推出的多媒體編程控制提供音頻和視頻媒體文件非常聲音的播放,可以支持多種文件格式,普通的WAV文件和AVI文件的視頻文件MPEG壓縮格式,可以正常播放??丶梢宰詣訁^(qū)分基于文件擴展名的設備類型,并完成相應的控制。因此,如果你的應用程序準備提供多媒體支持,然后使用ActiveMovie控件是一個好主意。事實上,許多優(yōu)秀的多媒體應用,多媒體播放是使用ActiveMovie控件實現設計的應用精心程序的用戶界面,我們可以開發(fā)一個功能齊全,美觀大方,具有高水平的多媒體播放器。使用一個acti

14、vemovie控制多媒體應用的開展可以大大提高多媒體開發(fā)效率,只要設置控件的文件屬性,名,來確定控制開放媒體文件名,然后執(zhí)行run方法可以播放媒體文件;通過設置選擇。最后用鼠標點擊按鈕完成播放,停止,暫停,快進,快退等功能。多媒體播放軟件現在幾乎成為每個家庭電腦安裝必要的軟件,比擬流行的 有迅雷播放器,Windows媒體播放器和快播、百度影音等等,可以播放MP3,RM,RMVB,MPEG,由軟件DAT等格式的多媒體文件。這些商業(yè)軟件的功能已經做得相當完美,也符合大多數普通消費者的胃口,但是很多人的電腦安裝不同的播放器,因為不同的播放器有不同的特點,并不是每個人都連接到一個播放器,設計一個符合自

15、己的習慣的播放器是可行的。強大的MFC、AppWizard、Class Wizard,方便使用,類似向導和各種控件可以方便地建立各種應用程序。同時,要實現更先進和復雜的功能,還可利用資源的ActiveX控件,在現有資源的控制,可以節(jié)省自己編程的復雜的過程,從而實現更先進的功能。本課程是專為使用VC 6控制一個ActiveXWindows媒體播放器控件,建立自己的多媒體播放器。該多媒體播放器翻開該文件,播放,暫停,快進,全屏幕,調整音量,倒帶和其他根本的播放功能,可以播放:MP3,WMA ,*,*,*,*,MDI,WAV,AVI,*。視頻和音頻文件格式,如DAT。同時也使隱藏的播放列表,可以選擇

16、播放,隨機順序、單周期隨機播放,在三個方面:將單周期隨機有翻開的文件,播放,暫停,在播放模式下關閉,是個人的選擇項。1.2 媒體格式簡介 1.2.1什么是WMF SDK WMF SDK是微軟Windows Media技術的重要組成局部,它基于COM技術,可以方便地開發(fā)具有高性能要求的多媒體應用程序。對WMF SDK關鍵技術作了概括介紹,并給出了采用Visual C+編程語言開發(fā)視頻播放器的軟件實現過程。WMF SDK采用了面向對象的設計,是一套完全基于COM組件模型的高級開發(fā)包。它引入的生成器,讀取器,器等對象屏蔽了ASF數據格式、傳輸控制等較為底層的流媒體技術實現細節(jié),留下比擬上層的編程接口

17、給開發(fā)者使用。 1.2.2 WMF SDK體系結構Windows Media Format SDK 具有許多處理 ASF 文件的功能,但其核心功能是讀寫文件。1.2.3 生成器結構 使用Windows Media Format SDK構建應用程序將生成器源介質樣品的傳遞。生成器設置指定的配置文件的目標代碼的文件。配置文件定義的編碼格式的文件,包括每個流程的詳細信息和如何處理信息流。大多數的音頻和視頻流的媒體編碼解碼器處理。然而,代碼首先與轉換器來處理數據,準備壓縮。當樣品被放置在一個文件中,然后轉移到多路復用器,多路復用器根據介紹時間從所有流的行掃描采樣和數據包。比特流復用器的創(chuàng)立和發(fā)送到接收

18、器,用于治療的最終目的的I / O接收機,無論是在磁盤或互聯網或其他網絡播放的文件。 1.2.4 讀取器結構 讀取過程和數據寫入過程根本相同,但順序是相反的。讀取器連接到源,源可以是一個文件,網絡連接或自定義源。分流處理文件的數據局部,數據被劃分成一個流的樣本,然后解壓縮的樣品如果啟用DRM保護,并通過相應的處理Windows媒體編碼解碼器。默認情況下,讀取器會自動選擇適宜的解碼解壓縮的ASF數據流。1.2.5 WMF SDK編程開發(fā)環(huán)境配置 WMF的SDK是唯一適合的C / C + VC 6的設置方法,選擇菜單命令工具選項,單擊“目錄,選擇包含文件顯示目錄中的下拉菜單,然后安裝路徑,在VC

19、SDK標準路徑。VC6.0工程應用的開發(fā),調試版本還需要以下設置:選擇在工程設置菜單命令,輸入標簽鏈接,一般選擇類別的下拉列表,winmm.lib和wmvcore.lib文件添加到對象/庫模塊忽略所有默認庫并選擇。2 軟件開發(fā)與設計 根據每個按鈕的控制功能和Windows媒體播放器控件的特點,首先要cwmpcontrol在頭文件中。cwmpsettings對象,結合和定義,需要在程序的后面的調用類的成員函數。翻開文件按鈕,調用的通用文件對話框類,并使用選定的文件到播放列表addstring列表功能,在MFC的研究。對一些根本功能的實現,如播放,暫停,音量,體積縮小,全屏幕,靜音,快進,快退等功

20、能,一個成員函數的調用cwmpcontrol和cwmpplayer類實現。 翻開? 讀取播放列表 播放 添加播放列表設置文件過濾 初始化 開始 播放控制播放列表的大小和方向,本設計使用SetWindowPos函數來改變一個窗口彈出,和一些對保存列表,刪除列表的實現相關的功能,刪除當前的功能。播放列表,我還增加了播放模式選擇功能,提供玩,然后循環(huán)周期,單周期三個選擇的OnTimer函數和函數能夠控制播放模式的運用。根據上述思路設計,流程圖如圖2.1所示:N Y播放模式 退出?N 圖2.1 流程圖 退出 Y2.2.設計步驟 首先,翻開Microsoft Visual Studio6.0軟件,新建一

21、個工程如圖2-2所示, 圖2.2 工程建立圖2.2 工程建立 以kejian為工程名,然后將此工程定義為基于對話框的MFC應用程序如圖2.3所示,點擊完成就成功建立了一個基于對話框的工程。在建立好工程之后,首先是Windows Media Player控件的添加:建立空白對話框之后,在對話框的空白處單擊鼠標右鍵,選擇Insert ActiveX Control菜單項。選擇Windows Media Player控件。參加控件后,此時該控件與該對話框并沒有聯系,需要對其進行變量的關聯。 添加完該控件之后可以發(fā)現,該控件與右邊控件工具欄添加的控件的形式與功能完全不同,是一種更為高級的控件,將該控件

22、名改為IDC_player, 如下圖。圖2.6 Windows Media Player控件雖然已已經添加了該控件,但是可以發(fā)現,改控件沒有與工程中的對話框發(fā)生任何聯系,所以需要對其進行變量的關聯,所屬類為Kejian類,變量類型為CWPPlayer4如圖2.7所示。 圖2.7 關聯變量 關聯變量之后,才算是真正的添加完了該控件,可以發(fā)現在關聯變量之后,控件工具欄多了Windows Media Player控件的選項,并且在Source Files中增加了17個類,相應的頭文件也增加了17個,如圖2.8所示。圖2.8 添加控件后的變化一類重要的cwmpplayer4,cwmpcontrols,

23、cwmpmedia,cwmpplaylist,cwmpsettings五類。該cwmpplayer4類是呼叫的其他類型的主要對象以及根本的控制功能,提供與Windows媒體播放器控件交互的一種根本方法,其中的成員函數也可以從其他相關對象的情況下獲得的局部;cwmpcontrols主要是控制多個操作;類cwmpmedia主要是一些媒體文件資源;cwmpplaylist主要播放操作;cwmpsettings主要是一些根本的集合操作的媒體文件。為控制添加和內部功能的認識需要更多的時間來完成這個熟悉的,添加關鍵控制后,接口設計。首先是翻開按鈕,用來翻開此媒體文件。然后,播放,暫停,快進,快退,全屏,音

24、量,體積減小,靜音,停止播放,退出按鈕。變量的相關性,于ID的修改在表2-1,表2-2所示: 表2-1 :控件ID以及關聯變量控件Caption按鈕ID關聯變量類型關聯變量名稱WMPlayerIDC_playerCWMPlayer4m_ZhuangWenfeng表2-2 控件ID以及對應響應函數控件Caption按鈕ID消息響應函數翻開IDC_openOnopen播放IDC_playOnplay暫停IDC_pauseOnpause全屏IDC_fullscreenOnfullscreen播放列表IDC_listOnlist列表框IDC_LIST1OnDblclkList1快進IDC_fastfo

25、rwardOnfastforward快退IDC_fastreverseOnfastreverse+音量增加IDC_addvolOnaddvol-音量減小IDC_decvolOndecvol靜音IDC_muteOnmute表2-3 控件ID以及對應響應函數控件Caption按鈕ID消息響應函數停止IDC_stopOnstop保存列表IDC_saveOnsave刪除列表IDC_dellistOndellist刪除當前IDC_dellistcurOndellistcur退出IDC_exitOnexit關于IDC_aboutOnabout以上是關聯的對象對應的控制,除了相應的控制,也需要一些有17種W

26、indows媒體播放器控件生成的類的對象被定義,和成員函數的定義,和一個對象的成員聲明放在頭文件中,本設計主要有3步,因為設計出提醒彈出框,所 以他們會在它的定義,如表2-3所示表2-4 其他類及對應對象類名對象名類名對象名CWMPControlsm_ControlCStringm_PathNameCWMPSettingsm_SettingCheckCCheck除了各控制變量的函數和響應消息,以及相關的對話框類的消息響應函數,因為播放模式選擇功能添加這樣的設計,因此需要使用wm_timer消息響應函數和函數OnTimer和函數來實現這一功能,對話框的消息響應程序書寫功能的相關性。添加的方法如下

27、圖。 圖2.10 多媒體播放器界面最終得到各個空間分布后的界面如圖2.10所示。圖多媒體播放器interfacein除上述主對話框,我也在aboutbox進行了重新設計,還做了一個檢查對話框,在其中aboutbox如下圖。檢查對話框退出按鈕,彈出提醒窗口,當用戶點擊,主要是用來防止用戶不小心按下關閉按鈕使程序關閉,這有利于用戶,加強友好的軟件,如圖2.11所示。 圖2.11 修改后的ABOUTBOX對話框 于菜單的制作,首先,需要在ResourceView中參加資源Menu,后增加對應的菜單項以及菜單自己布局,下拉菜單那么需要和按鈕關聯,其方法是將其ID和按鈕的ID一樣,菜單布局圖2.12所示

28、。 圖 2.12 菜單欄 對于各個函數的介紹,本文以關鍵代碼以及注釋的方式進行介紹,首先介紹主對話框中函數的實現以及說明:(1)Onopen();翻開函數void CejianDlg:Onopen() char szFileFilter=All File(*.*)|*.*|AVI File(*.avi)|*.avi|Mp3 File(*.mp3)|*.mp3|MPEG File(*.mpeg)|*.mpeg|Media File(*.asf)|*.asf|Video File(*.dat)|*.dat|MPGA File(*.mpga)|*.mpga|Wave File(*.wav)|*.wa

29、v|Movie File(*.mov)|*.mov|MidFile(*.mid;*,rmi)|*.mid;*.rmi|WmaFile(*.wma)|*.wma|Rmvb File(*.rmvb)|*.rmvb|All File(*.*)|*.*|; /可選的文件類型 CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR,szFileFilter); /OFN_ALLOWMULTISELECT是允許選擇多個文件 OFN_NOCHANGEDIR是不改變當前目錄 POSITION po

30、s=dlg.GetStartPosition(); if(dlg.DoModal()=IDOK) while(pos!=NULL) m_pathname=dlg.GetNextPathName(pos);/得到完整的文件名,包括目錄名和擴展名 m_list.AddString(m_pathname);/增加到播放列表 問題是理解的奇怪的功能,因為大量的類,并且每個成員函數是不同的,更難以使用。除了常見的文件對話框和更熟悉的,其他的功能通常是不可見的。通過增加播放目錄的路徑名主要取決于getnextpathname函數,該函數是添加到播放列表中的工程名稱 (2)Onlist();播放列表按鈕函數

31、和OnDblclkList1();播放列表函數: void CKejianDlg:Onlist() flag=!flag; if(!flag) SetWindowPos(NULL,0,0,400,430,SWP_NOMOVE);/播放列表初始位置狀態(tài)else SetWindowPos(NULL,0,0,590,430,SWP_NOMOVE);/點擊按鈕后播放列表位置狀態(tài)播放按鈕設計功能是運行軟件播放器播放的是隱藏的,當你點擊按鈕,彈出的列表。為了實現這個功能,我會一起播放列表和播放表按鈕。為此,該程序定義了一個全局變量的圖標,把它作為一個標志,在初始化定義窗口無相對位移,當你點擊按鈕,位移的窗

32、口,它會到達隱藏和功能的播放列表。但對播放列表,它需要實現雙播放功能,所以加上控制列表消息映射,并選擇雙擊消息響應函數,如圖2,13所示。該工程也參加了執(zhí)行響應函數函數,當你點擊功能開始創(chuàng) 建一個計數器,從而實現播放模式功能。 圖13 播放列表消息影像函數設置CKejianDlg 具體程序如下所示: void CKejianDlg:OnDblclkList1();/雙擊播放函數 CString str int index=m_list.GetCurSel();/獲取選擇的行數 m_list.GetText(index,str); m_CKejianDlg.SetUrl(str);/播放 m_p

33、athname=str; SetTimer(1,1000,NULL); /在點擊播放時就創(chuàng)立計時器 每隔1秒就自動執(zhí)行下響應函數ontimer()3Onplay();播放函數及其他多媒體播放控制按鈕void CKejianDlg:Onplay() m_Control.play(); /暫停后繼續(xù)播放如同播放函數所示,其他控制播放狀態(tài)的函數都可以直接調用添加的控件的類的對象調用實現,按鈕響應函數和調用的函數關系如表2-5所示。 表2-5響應函數和調用函數關系響應函數調用函數響應函數調用函數Onfastre6verse()m_Control.fastReverse()Onfulscreen()m_

34、Kejian.SetFullScreen(1)Onfastforward()m_Control.fastForward()Onmute()m_Setting.SetVolume(m_Setting.GetMute();Onstop()m_Control.stop()Onaddvol()m_Setting.SetVolume(m_Setting.GetVolume()+10)Onpause()m_Control.pause()Ondecvol()m_Setting.SetVolume(m_Setting.GetVolume()-104播放列表狀態(tài) 這款播放器設計了保存播放列表、刪除播放列表、刪除

35、當前三種對播放列表狀態(tài)的控制,其中函數主要調用了m_list類中的函數,在初始化是參加了一個讀取上次保存的播放列表的指針函數,增加了播放列表的人性化。具體函數如下:void CkejianDlg:Onsave() CStdioFile file;file.Open(.list.txt,CFile:modeCreate|CFile:modeReadWrite|CFile:typeText);/翻開指定文件for(int i=0;iSetCheck(true);/默認播放模式為順序播放 計數器函數OnTimer程序如下:void CKejianDlg:OnTimer(UINT nIDEvent)

36、int index=m_KejianDlg.GetPlayState();/獲取播放狀態(tài)if(index=1)/如果播放完成if(CButton *)GetDlgItem(IDC_RADIO1)-GetCheck()/如果是順序播放CString str;int index=m_list.GetCurSel()+1;if(index=m_list.GetCount() index=0;/如果播放完最后一曲就自動播放第一首m_list.GetText(index,str);m_kejian.SetUrl(str);m_list.SetCurSel(index);/自動置光標/這樣就實現了順序播放

37、if(CButton *)GetDlgItem(IDC_RADIO2)-GetCheck()/隨機播放srand(time(0);/目的在于每次都能產生不同的隨機數序列m_list.SetCurSel(rand()%m_list.GetCount();/隨機選擇0-m_list.GetCount()-1的任意一個數即隨即選擇m_list里的文件m_list.GetText(m_list.GetCurSel(),m_pathname);m_kejian.SetUrl(m_pathname);if(CButton *)GetDlgItem(IDC_RADIO3)-GetCheck()/單曲循環(huán)m_

38、list.GetText(m_list.GetCurSel(),m_pathname);m_kejian.SetUrl(m_pathname);CDialog:OnTimer(nIDEvent);6Onabout()和Onexit()函數 因為調用自身編輯的對話框并且修改了工程中的ABOUTBOX資源,所以也要對其進行一定的修改。首先,是對Onabout()函數的修改:void Ckejian:Onabout() CAboutDlg aboutDlg; aboutDlg.DoModal(); 其次,在onexit函數的重載。添加對話框,制作簡單沒有介紹,這是介紹添加對話框和相應的類和添加的頭文

39、件。制定一個好的對話框,對話框的使用ClassWizard對話框類的關聯,作為一個調用的結果,因此建立對象的對話框框,如圖2.15中所示。 選擇創(chuàng)立一個新的類,你需要在輸入并輸入一個名稱,將添加一個對應的check.cpp和檢查。在工程文件視圖文件是確定的,那么你可以在自制的對話框類和對象。所謂的對話框如下列圖所示,和刪除在完成退出計數器,釋放內存。void CKejianDlg:Onexit() CCheck Check; /生成CCheckBox類的對象CheckBox if(Check.DoModal()=IDOK) /彈出對應的模態(tài)對話框 CDialog:OnCancel(); /點擊

40、確定那么退出KillTimer(1);/退出程序時刪除計數器 7的菜單欄添加生產函數做一個菜單欄添加只要到對話框中相應的,本文不再。每個菜單項的功能,只要菜單項進入相應的功能按鈕控制相應的ID相同,可以方便快速地調用。3 系統(tǒng)測試測試目的 根據用戶需求,設計,概要設計和詳細設計測試用例,測試軟件系統(tǒng)。其目的是: 1:測試是為了發(fā)現錯誤的程序,程序的執(zhí)行過程。2:好的測試方案是可能發(fā)現的錯誤的測試方案到目前為止還沒有被發(fā)現。3:成功的測試是發(fā)現到目前為止被發(fā)現的錯誤的測試。3.2測試環(huán)境 操作系統(tǒng)Windows xp。測試重點是系統(tǒng)后臺根本功能模塊。3.3調試報告有在設計過程中的許多錯誤,錯誤的

41、搜索使用VC+ 6編譯,根據錯誤,改正錯誤。在這一點錯誤不重復,有沒有相應的頭文件,在一個小錯誤,正確的變量名稱不明確,容易修改,將在下面描述,程序的調試和誤差修正方法1問題一 在播放列表的設計時,單擊“播放列表成員沒有播放的文件已被修改,代碼沒有改變,所以,經過一段時間的一個按鈕,而不是雙發(fā)揮的功能如圖3.1所示。 圖3.1 調試結果1 最終在在線數據獲取的問題的解決方案:雙播放功能,在播放列表中添加一個雙擊消息映射函數的實現,然后ondblclklist1的代碼,從而實現雙播放功能。2問題二 此段程序在OnInitDialog()函數中,連接編譯都未報錯,但是播放、暫停等多個按鈕控件無法工

42、作。后考慮到其他類都進行了的類的綁定,所以也要對CWMPControls類進行綁定,其中static_cast相當于將某一對象和賦值符號右邊的值進行綁定,由于是靜態(tài)綁定,故綁定后不再改變,而后續(xù)程序中出現的m_Control對象卻并未出現對應的綁定,如圖3.2所示。添加代碼: m_Control = static_cast(m_WMPlayer.GetCurrentControl();之后,后續(xù)的控件的操作可以正常進行了。3問題三alog函數,編譯器將不會連接錯誤,但播放,暫停等多個按鈕控件將不工作。在其他類的賬戶是類綁定,所以也被結合在static_cast cwmpcontrols,相當于

43、一個對象,指定一個符號在綁定的值的右側,是靜態(tài)綁定,綁定不改變,并在隨后的程序m_control對象的出現是不受約束的相應的。添加代碼:m_control = static_castcwmpplaylist m_wmplayer.getcurrentcontrol;在那之后,操作的控制可以是正常的。4停止按鈕開始編程,直接調用功能,如圖3.3所示,但當調試時,請單擊“停止按鈕,玩家停止然后繼續(xù)播放下一首歌。經過分析,它是計數功能的問題,由于游戲模式功能外,當停止時,計數器不停止工作,應對本輪繼續(xù)播放功能的執(zhí)行,所以后來添加刪除計數器代碼:killtimer1,如下圖。Void CKejianD

44、lg:Onstop()M_control.stop();/停止函數Void CKejianDlg:Onstop()M_control.stop();/停止函數Killtime1;刪除計數器 圖3.3 原來的代碼 5問題四 在退出按鈕設計的四個問題是設計一個退出提醒功能,以防止用戶不小心使用時的錯誤和錯誤的退出程序,開始更正了這一點,然后讓學生得到答案,然后添加另一個對話框,然后創(chuàng)立一個新的類別,增加在頭文件#包括“檢查,然后進行編程,以實現特定的功能,如下圖。 圖3.5 3.4 測試結果 圖3.6 剛運行時隱藏播放列表 圖3.7 關于對話框 圖3.8 菜單功能 結 論 從程序運行調試的結果來看

45、,設計根本成功。經過這次課程設計,讓我對于MFC編程的方法有了更新更全面的認識和深入的了解,對VC的運用更是熟練了很多,而且有了系統(tǒng)地設計軟件的概念,這對我以后的軟件開發(fā)打下了很好的根底。但是畢竟只是一個人開發(fā),且時間有限,技術知識不夠,當然不能跟主流的媒體播放器比方國內的迅雷播放器,暴風影音等相比,本軟件還可以繼續(xù)開發(fā),比方實現屏幕大小的任意調節(jié)等。在所給的論文設計中,多媒體播放器的設計最能吸引我。我想,對于設計這個平時用得最多的軟件,應該不難吧。然而事實往往出人意料,著手開始設計程序流程圖,我才發(fā)現去年學的C+語言知識所剩無幾,很多操作都不能熟練完成,只能找到以前的課本和相關資料再學習?;?/p>

46、了兩天的功夫才把資料根本看完,導致設計流程圖的時間大大減少,沒有設計出比擬好的流程圖,這對后續(xù)的程序編輯帶來了一定的困難。由此,我深刻地體會到,在編程之前,畫程序流程圖具有不可取代的重要性。在更改正的流程圖根底上,我對自己所設定的功能進行編程,提交程序時,由于我通過調節(jié)滑塊控制音量并在一個編輯框中同步顯示音量大小,謝老師問我如何實現在編輯框中輸入數值反過來改變音量,我當時沒能正確答復,老師提示我用GetPos相反的函數實現該功能。聽取老師意見后,我采用SetPos函數成功實現該功能。其實這兩個函數都屬于一個類的成員函數,但我只懂其一,說明自己看參考資料時不細心,遺漏了某些重要知識,以后需要多多

47、注意??偠灾@次課程設計讓我學會了很多,發(fā)現了自己的缺乏,加深了對提出問題-分析問題-解決問題這一思維方式的運用,鍛煉了自己的邏輯思維和編程能力,為以后工作學習打下了較好的根底。致 謝 在該次論文設計的過程中,感謝老師的指導以及同學之間的幫助,在很多不明白的方面比方執(zhí)行 link.exe 時出錯,給于了充分的幫助。在此次論文的制作過程中,遇到了大量的問題這使我明白了自己的很多缺乏之處,在學術上是永無止境的,所以我還是要更加努力的前進去壯大和充實自己,同時也使我深深的意識到不管自己是否發(fā)覺,身邊都會有很多人在幫助自己。還要感謝和我的幾位同學,和同事莊文峰,是你們在我平時設計中和我一起探討問題

48、,并指出我設計上的誤區(qū),使我能及時的發(fā)現問題把設計順利的進行下去,沒有你們的幫助我不可能這樣順利地結稿,在此表示深深的謝意。 參 考 文 獻 1 ?Visual C + + 多媒體開發(fā)指南?. 李博軒. 清華大學出版社, 2000. 2?深入解析MFC?. GEORGE SHEPHERDSCOT WINGO著, 趙劍云,卿瑾譯. 北京:中國電力出版社,2003.3?Visual C + +編程技巧精選500例?. 羅斌.中國水利水電出版社,2004.4?.姚予疆. 人民郵電出版社2001. 5 program/cshapo/csharpjs/20210118/192308.html 6 百度文

49、庫. 7?Visual C+.NET多媒體編程M?.8?面向對象程序設計與VC+實踐M?. 9?Visual C+教程M?. 10?流媒體寶典?. 9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U

50、E9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjq

51、v$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5u

52、xY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9Cpb

53、K!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vS

54、TT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Am

55、YWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&

56、gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVk

57、um&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYW

58、pazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&

59、qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4

60、NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn

溫馨提示

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

評論

0/150

提交評論