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

下載本文檔

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

文檔簡介

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

2、文中作了明確說明并表示謝意。畢業(yè)論文設(shè)計作者簽名: 日期: 基于VC的媒體播放器設(shè)計與功能實現(xiàn) 摘 要目前常見的多媒體軟件應該說各有特點,但幾乎每一個都存在著不如人意的地方。我的主題是“媒體播放器軟件設(shè)計基于VC開發(fā)工具,首先介紹目前一些媒體和媒體播放器,然后介紹了一種由本人設(shè)計的多媒體播放器MediaPlayer?;趘c播放器,使用系統(tǒng)MCIMedia控制接口命令接口編程,具有體積小,支持的格式,占用系統(tǒng)資源少,支持播放列表編輯器,支持多種視頻格式等功能優(yōu)勢。關(guān)鍵詞:播放器;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體系結(jié)構(gòu) PAGEREF _Toc32322 31. HYPERLINK l _Toc29239 2.3 生成器結(jié)構(gòu) PA

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

8、2085 2.3界面設(shè)計 PAGEREF _Toc2085 10 HYPERLINK l _Toc28675 2.4關(guān)鍵功能的實現(xiàn) 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測試結(jié)果 PAGEREF _Toc883 244 HYPERLINK l _Toc10315 結(jié) 論. PAGEREF _Toc10315 27 HYPERLINK l _Toc10315 致 謝. PAGEREF _Toc10315 28 HYPERLINK l _Toc6320 參考文獻. PAGEREF _Toc6320 261 緒 論多媒體技術(shù)的概念及多媒體技術(shù)在十九年代早期的應用,經(jīng)過十年多的開展,隨著計算機科學的開展和網(wǎng)絡的普及和多媒體技術(shù)的開展,已成為計算機領(lǐng)域的一個熱點技術(shù)的開展,各種媒體格式的視圖,如何簡單和方便的播放各種媒體已經(jīng)成為人們普遍關(guān)注的問題,和媒體播

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24、量,體積減小,靜音,停止播放,退出按鈕。變量的相關(guān)性,于ID的修改在表2-1,表2-2所示: 表2-1 :控件ID以及關(guān)聯(lián)變量控件Caption按鈕ID關(guān)聯(lián)變量類型關(guān)聯(lián)變量名稱WMPlayerIDC_playerCWMPlayer4m_ZhuangWenfeng表2-2 控件ID以及對應響應函數(shù)控件Caption按鈕ID消息響應函數(shù)翻開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以及對應響應函數(shù)控件Caption按鈕ID消息響應函數(shù)停止IDC_stopOnstop保存列表IDC_saveOnsave刪除列表IDC_dellistOndellist刪除當前IDC_dellistcurOndellistcur退出IDC_exitOnexit關(guān)于IDC_aboutOnabout以上是關(guān)聯(lián)的對象對應的控制,除了相應的控制,也需要一些有17種W

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

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

28、。 圖 2.12 菜單欄 對于各個函數(shù)的介紹,本文以關(guān)鍵代碼以及注釋的方式進行介紹,首先介紹主對話框中函數(shù)的實現(xiàn)以及說明:(1)Onopen();翻開函數(shù)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);/增加到播放列表 問題是理解的奇怪的功能,因為大量的類,并且每個成員函數(shù)是不同的,更難以使用。除了常見的文件對話框和更熟悉的,其他的功能通常是不可見的。通過增加播放目錄的路徑名主要取決于getnextpathname函數(shù),該函數(shù)是添加到播放列表中的工程名稱 (2)Onlist();播放列表按鈕函數(shù)

31、和OnDblclkList1();播放列表函數(shù): 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)播放按鈕設(shè)計功能是運行軟件播放器播放的是隱藏的,當你點擊按鈕,彈出的列表。為了實現(xiàn)這個功能,我會一起播放列表和播放表按鈕。為此,該程序定義了一個全局變量的圖標,把它作為一個標志,在初始化定義窗口無相對位移,當你點擊按鈕,位移的窗

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

33、athname=str; SetTimer(1,1000,NULL); /在點擊播放時就創(chuàng)立計時器 每隔1秒就自動執(zhí)行下響應函數(shù)ontimer()3Onplay();播放函數(shù)及其他多媒體播放控制按鈕void CKejianDlg:Onplay() m_Control.play(); /暫停后繼續(xù)播放如同播放函數(shù)所示,其他控制播放狀態(tài)的函數(shù)都可以直接調(diào)用添加的控件的類的對象調(diào)用實現(xiàn),按鈕響應函數(shù)和調(diào)用的函數(shù)關(guān)系如表2-5所示。 表2-5響應函數(shù)和調(diào)用函數(shù)關(guān)系響應函數(shù)調(diào)用函數(shù)響應函數(shù)調(diào)用函數(shù)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) 這款播放器設(shè)計了保存播放列表、刪除播放列表、刪除

35、當前三種對播放列表狀態(tài)的控制,其中函數(shù)主要調(diào)用了m_list類中的函數(shù),在初始化是參加了一個讀取上次保存的播放列表的指針函數(shù),增加了播放列表的人性化。具體函數(shù)如下:void CkejianDlg:Onsave() CStdioFile file;file.Open(.list.txt,CFile:modeCreate|CFile:modeReadWrite|CFile:typeText);/翻開指定文件for(int i=0;iSetCheck(true);/默認播放模式為順序播放 計數(shù)器函數(shù)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);/自動置光標/這樣就實現(xiàn)了順序播放

37、if(CButton *)GetDlgItem(IDC_RADIO2)-GetCheck()/隨機播放srand(time(0);/目的在于每次都能產(chǎn)生不同的隨機數(shù)序列m_list.SetCurSel(rand()%m_list.GetCount();/隨機選擇0-m_list.GetCount()-1的任意一個數(shù)即隨即選擇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()函數(shù) 因為調(diào)用自身編輯的對話框并且修改了工程中的ABOUTBOX資源,所以也要對其進行一定的修改。首先,是對Onabout()函數(shù)的修改:void Ckejian:Onabout() CAboutDlg aboutDlg; aboutDlg.DoModal(); 其次,在onexit函數(shù)的重載。添加對話框,制作簡單沒有介紹,這是介紹添加對話框和相應的類和添加的頭文

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

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

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

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

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

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

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

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

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

48、,并指出我設(shè)計上的誤區(qū),使我能及時的發(fā)現(xiàn)問題把設(shè)計順利的進行下去,沒有你們的幫助我不可能這樣順利地結(jié)稿,在此表示深深的謝意。 參 考 文 獻 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?面向?qū)ο蟪绦蛟O(shè)計與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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論