




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z.- . -可修編- .*科技大學普通本科畢業(yè)設計論文說明書課題名稱 基于VC+的多媒體播放器設計與實現學 院 計算機科學與通信工程學院 專 業(yè) 計算機科學與技術(軟件工程方向) 班 級 學 號 姓 名 指導教師 2015年 05月 01日-. z.摘 要 隨著互聯網的快速開展,多媒體技術和多媒體通訊技術的逐步成熟使得信息從單一媒體到多媒體的方向開展,人們對多媒體信息的需求量日益增加,多媒體播放器也應運而流行起來。大多數多媒體播放器軟件的功能根本小異,一般都可支持本地媒體文件和網絡媒體文件。功能上已經大致完善,但是也有缺乏之處。論文主要作了以下工作: 一、詳細地介紹了該課題研究的目的和
2、多媒體技術開展的現狀和開展趨勢,介紹該課題的主要工作容和難點所在。 二、對軟件可行性研究初步工程方案、需求的分析,同時通過用戶調查和對軟件性能和功能了解制定開發(fā)流程,設定好工程的開發(fā)環(huán)境,之后逐步按流程和需求完成軟件的初步設計,對于設計實現過程中的難題,尋找可行的解決方案。 三、對播放器程序的概要設計,播放器系統(tǒng)按功能進展建立和劃分模塊,以及確立模塊與模塊的接口,并調用好各模塊和整體間連接,再者就是分析好層次構造,設計友好的人機界面,最后再軟件的詳細設計以及實現主要的功能代碼,列出該局部函數的代碼。 四、對播放器程序的測試,在特定的測試環(huán)境的平臺下,主要是于軟件所實現的根本功能進展了黑盒測試,
3、通過測試發(fā)現輸入還有輸出的邏輯錯誤、以及在初始化時、因為錯誤導致的程序的終止,界面的顯示發(fā)生不正常,程序的性能和功能發(fā)生了不正確錯誤等等。 通過使用Windows 7 操作系統(tǒng)對多媒體播放器的設計與實現,程序設計的開發(fā)工具采用Microsoft Visual C+ 6.0。在程序設計中,使用了微軟公司的 Active* 控件Windows Media Player(WMP)通過不斷運行調試,初步實現了多媒體播放器的軟件開發(fā)的根本功能?;?MFC 集成開發(fā)環(huán)境,使用Windows操作系統(tǒng)提供的 Active*實現編程。并完成需求的功能。并實現了占用存比擬小,界面簡潔明了,功能較完全,支持多格式
4、的視頻和音頻,同時具有程序強健性強等特點。關鍵詞: 多媒體技術,播放器,Active* ,MFC,多媒體,MCI-. z.AbstractWith the Internet and the development of information technology, multimedia technology matures and multimedia munications technology makes information from a single media to multimedia direction, increasing peoples demand for multi
5、media information, multimedia player should be transported and popular. Most multimedia player software functions substantially similar, generally can support local media files and online media files. The function has been substantially improved, but there are drawbacks. Paper made the following wor
6、k:A detailed description of the current situation and development trend of purpose and multimedia technology development in the research, introduces the main content.Second, preliminary feasibility study of software project planning, requirements analysis, while developing the development process th
7、rough user surveys and understand the performance and functionality of the software, set up the projects development environment, then gradually according to the process and requirements to plete the preliminary design software, For the design and implementation problems in the process, to find viab
8、le solutions.Third, the player programs outline design, player system set up and divided by function module, and the establishment of an interface module and modules, and each module and the overall good call en, addition is good hierarchy analysis, design-friendly detailed design of man-machine int
9、erface, software, and finally achieve the main function of the code.Fourth, the test player program, in platform-specific test environment, primarily in the realization of the basic functions of the software black bo* testing were found to input as well as output of logic errors, and pass the test d
10、uring initialization, because termination errors of the program, the interface displays unusual occurrence, performance and functionality of the program is not correct the error occurred, and so on.Through Windows 7 operating system design and implementation of multimedia player used programming dev
11、elopment tools using Microsoft Visual C + 6.0. In programming, the use of Microsofts Active* controls -Windows Media Player (WMP), by constantly running debugging, the initial realization of the basic functions of the multimedia player software development. MFC-based integrated development environme
12、nt, using Active* Windows operating system provides for programming. And plete functional needs. And to achieve the memory for relatively small, concise interface, features a more plete multi-format video and audio, but also has robust procedures and other characteristics.Keywords: multimedia player
13、, Active*, MFC, multimedia,MCI-. z.目 錄TOC o 1-3 h u HYPERLINK l _Toc14294 1 緒論 PAGEREF _Toc14294 1 HYPERLINK l _Toc26324 1.1 前言 PAGEREF _Toc26324 1 HYPERLINK l _Toc14603 1.2背景 PAGEREF _Toc14603 1 HYPERLINK l _Toc10492 1.3研究目的 PAGEREF _Toc10492 3 HYPERLINK l _Toc22743 1.4相關技術 PAGEREF _Toc22743 3 HYPE
14、RLINK l _Toc28653 2 需求分析 PAGEREF _Toc28653 6 HYPERLINK l _Toc1447 2.1 播放器軟件根本調查 PAGEREF _Toc1447 6 HYPERLINK l _Toc1719 2.2 軟件功能分析 PAGEREF _Toc1719 7 HYPERLINK l _Toc828 2.3 軟件運行環(huán)境 PAGEREF _Toc828 9 HYPERLINK l _Toc31556 2.4 業(yè)務流程分析 PAGEREF _Toc31556 9 HYPERLINK l _Toc17498 2.5 數據流程分析 PAGEREF _Toc174
15、98 10 HYPERLINK l _Toc10170 2.6 可行性分析 PAGEREF _Toc10170 12 HYPERLINK l _Toc2849 3 系統(tǒng)總體設計 PAGEREF _Toc2849 13 HYPERLINK l _Toc7180 3.1 概要設計 PAGEREF _Toc7180 13 HYPERLINK l _Toc19672 3.2 界面設計 PAGEREF _Toc19672 16 HYPERLINK l _Toc4345 4 詳細設計 PAGEREF _Toc4345 18 HYPERLINK l _Toc32121 4.1 功能模塊詳細設計 PAGERE
16、F _Toc32121 18 HYPERLINK l _Toc6145 4.1.1 文件模塊設計 PAGEREF _Toc6145 21 HYPERLINK l _Toc18497 4.1.2 播放控制模塊設計 PAGEREF _Toc18497 23 HYPERLINK l _Toc6178 4.1.3 播放列表模塊設計 PAGEREF _Toc6178 28 HYPERLINK l _Toc9741 4.1.4 播放循環(huán)模塊實現 PAGEREF _Toc9741 31 HYPERLINK l _Toc25943 4.1.5 音量模塊實現 PAGEREF _Toc25943 32 HYPER
17、LINK l _Toc1865 4.1.6 定時關閉 PAGEREF _Toc1865 33 HYPERLINK l _Toc28974 4.1.7 對話框初始化 PAGEREF _Toc28974 35 HYPERLINK l _Toc14017 5 軟件測試 PAGEREF _Toc14017 37 HYPERLINK l _Toc17649 5.1測試方案 PAGEREF _Toc17649 37 HYPERLINK l _Toc918 5.2測試用例 PAGEREF _Toc918 37 HYPERLINK l _Toc14903 根據測試過程制定兩組測試用例,用例組如下表5.1和表5
18、.2所示. PAGEREF _Toc14903 37 HYPERLINK l _Toc29721 5.3黑盒測試 PAGEREF _Toc29721 38 HYPERLINK l _Toc19668 5.3.1文件功能 PAGEREF _Toc19668 39 HYPERLINK l _Toc4202 5.3.2播放控制功能 PAGEREF _Toc4202 40 HYPERLINK l _Toc31113 5.3.3播放列表功能 PAGEREF _Toc31113 41 HYPERLINK l _Toc2813 5.3.4音量控制模塊 PAGEREF _Toc2813 42 HYPERLIN
19、K l _Toc30427 5.3.5播放模式模塊 PAGEREF _Toc30427 43 HYPERLINK l _Toc32385 5.3.6定時關閉模塊 PAGEREF _Toc32385 44 HYPERLINK l _Toc16891 完畢語 PAGEREF _Toc16891 45 HYPERLINK l _Toc29625 致 PAGEREF _Toc29625 46 HYPERLINK l _Toc1964 參考文獻 PAGEREF _Toc1964 47-. z.1 緒論前言隨著科學技術的開展,在計算機,手機普及的今天,信息傳播速度越來越快,也越來越廣,多媒體作為一種將圖像
20、,聲音,文本等多種媒體據為一身的存在形式,在計算機、手機、隨身聽等載體中出現,成為人們在生活中獲取信息來源之一。在互聯網起步的年代,網絡技術、計算機硬件水平較低的限制,人們獲取新聞信息主要還是以看報紙,電視,還有人與人間的交流,媒體的傳播主要以方式播送電視里,DVD播放器,當今網絡技術的不斷提高、迅速開展,人們能夠更方便的連接互聯網來獲取信息,流媒體的出現,多媒體的開展對世界的信息文化傳播起到了促進作用,加快了信息全球化的開展,同時也成為了信息化今天的一局部。播放器作為一種播放視頻或音頻文件的軟件,把數字信號加工處理成圖片聲音等多種方式,識別展現同時存在一種或者多種媒體文件,媒體作為信息的載體
21、,存儲設備作為媒體的載體,由載體(硬盤等)播放器多媒體信息(視頻音頻),使得存在載體中的媒體信息得以彰顯。,大多數播放器攜帶解碼器用來復原已經過的壓縮媒體文件,同時播放器還需要自帶一組變換頻率緩沖算法?,F在播放器主要為音頻播放器(代表軟件:天天動聽,千千靜聽,酷狗,QQ音樂等)和視頻播放器(代表軟件:RealPlayer,KMPlayer,暴風影音,迅雷看看等)。常用多媒體的文件主要格式包括:音頻格式(AIFF;AAC;MP3;WAVE;WMA等)、視頻格式(F4V;AVI;RMVB;MOV,WMV,MKV等)。1.1.1 設計目標設計一個能支持多種格式,包括視頻格式和音頻格式的的播放器,有良
22、好的人機交互界面,且播放功能完善,還附加其他需求的而添加的功能,支持播放列表,音量控制等,具體的功能根本符合當今視頻音頻播放器的需求來設計,并在這標準上根據自己的需要做一下修改。1.2背景 媒體是作為信息載體的一種形式,在計算機中,它有兩種含義:1.作為傳播信息的載體,有包括文字、圖片、聲音、語言、視頻、音頻等。2.作為存儲信息的載體,比方ROM只讀存儲器、RAM存、磁盤等儲存設備。媒體作為信息的載體,它接收各式的數據信息,如圖像,聲音,文字等,再經過了計算機處理以及加工之后,以文字形式、聲音形式、圖片形式、動畫形式等多種形式彰顯,實現 輸入/輸出(I/O) 方式的多元化,同時改變了舊時計算機
23、只能承受輸入輸出文字 信息、數據信息的局限性。通常我們將媒體分為了五大類: 1、感覺媒體:能夠直接作用于人的感官,使人產生感覺的媒體,如聲音、圖像、動畫、文字等。 2、表示媒體:為傳輸感覺而創(chuàng)造出來的中間手段,能夠使感覺有效地從一處傳遞到另一處。 3、表現媒體:用在感覺媒體和信息傳輸中電信號之間轉換所用的媒體,大致是指信息輸入、輸出的工具設備。包括輸入媒體例如:鼠標、攝像機、鍵盤以及麥克風等和輸出媒體例如:屏幕、紙和喇叭等。 4、存儲媒體:以存儲表示媒體的載體。5、傳輸媒體:用來將表示媒體從*一處傳輸到另一處的物理實體。用來進展網絡傳輸的通訊介質例如:有線方式有同軸電纜、光纖以及雙絞線等,而無
24、線方式則有wifi、藍牙和紅外線等。 周長發(fā):Visual C+.NET 多媒體編程.:電子工業(yè),2002年 多媒體作為近幾年出現的新生事物,是融合兩種或者多種媒體的形式,我們稱之為多媒體,這種混合形式的信息載體,在當今的地位顯得越來越重要,在人們去信息需求量大的今天,多媒體舉足輕重,相信在不久的一段時間中,多媒體會朝著更好的方向快速的開展,如全息投影虛擬成像技術,都開場新的技術革命。人承受信息主要通過:視覺、聽覺、嗅覺、觸覺、味覺。也就是說明人有五種承受信息的方式,文字信息只能靠視覺獲取,聲音靠聽覺,同理氣味靠嗅覺和味覺,壓力和溫度靠觸覺。其中90%的信息來自視覺,想象一下。光是看一段動畫就
25、類似感覺到了90%的信息,此時再加上聲音,溫度,壓力,氣味的結合,那就是身臨其境了嗎?多媒體技術(Multimedia Technology)是一種將計算機中圖像方面、文字方面和聲音方面等各式各樣的信息融合一體,形成了計算機和用戶之間人機交互作用的技術。多媒體技術涉及的是計算機的相關的對象的產物只屬于計算機領域的技術,所以說電視,播送等均不屬多媒體技術的圍。 *小川,多媒體技術與應用(第二版).:人民郵電,2006年多媒體技術的特點: 1.集成性和多樣性。多媒體融合了多種單一媒體聚于一身,經過對在計算機媒中以數字信息化處理和加工形成一人具有多種屬性的新形式,能更好的傳達和承載信息。具有媒體無法
26、具有的優(yōu)勢。2.數字化。多媒體以數字形式存在。 3.人機交互性。人機交互就是多媒體的一大特點。它形成了人與計算機、人與計算機及計算機間的交互,交互使人感覺身臨其境、置身其中,更有利用戶使用和控制信息手段。 曲建明.多媒體技術與應用教程(第二版).:清華大學,2003年實時性。畫面和聲音信息等能隨時間而動態(tài)的變化。 1.3研究目的近年隨著來計算機產業(yè)和科學技術的開展,硬件的本錢不斷減少,傳輸瓶頸不斷的突破,個人計算機性能的提高應用越來越普及。突破硬件條件的限制,對圖像,視頻等更高層次的支持,在計算機存儲容量,存儲媒體的信息容量擴大,網絡飛躍式的開展,網絡傳輸提高速度上,傳輸媒體顯得更方便快捷,媒
27、體交互變得更容易,使得多媒體應用更加的廣泛,在新聞、廣告、教育、娛樂、科研領域應用,并且得到很好的利用,于是我萌生嘗試制作一個基于VC+多媒體播放器,雖然網上已經有了許多功能強大,界面優(yōu)美,且算法精良的播放器,但大多數軟件都以商業(yè)利益為主,嵌廣告,以展現多媒體的工具來傳播信息,并通過廣告應用多媒體技術到商業(yè)領域,也是值得學習借鑒的。我想可以通過設計和實現的過程學習和應用多媒體技術。首先播放器要具有根本的播放控制的功能,且對大多數視頻文件avi , Wmv,mpeg等、音頻文件 wav ,cd ,aif,mp3 等格式的支持,功能有翻開、播放、快進、快退、暫停、停頓,有播放列表以及列表管理,進度
28、條,音量控制,單曲循環(huán),列表循環(huán),隨機播放等循環(huán)功能,以按鍵操控、快捷鍵操控和鼠標操控為主,播放器的界面以整齊、簡潔明了的風格布局,開發(fā)使用的操作系統(tǒng)為WIN 7旗艦版,測試使用的操作系統(tǒng)WIN 7旗艦版,軟件支持系統(tǒng)WIN 8/WIN 7/WIN *P,開發(fā)工具為VC+ 6.0,使用微軟的微軟根底類庫MFC)編程,通過Windows Media Playd 的控件以及MCI接口,開發(fā)效率也是比擬高,精心去設計程序,我們可以完成一個相對不錯的播放器。對多種格式的兼容以及支持,存占用率比擬低,適合配置低的或者是要求不高的用戶,國大局部1.4相關技術C+語言The C+ Programming L
29、anguage 1983年,在爾實驗室在C語言的根底上推出了C+,一開場曾被稱為new C,之后又叫C with Class,最后得名于C語言的+操作符,表示源自C語言的自然演變。 C+是一種面向對象的編程語言,作為一種通用的編程語言,得到了廣泛的應用,C+具有多種編程式:面向對象編程、過程化編程以及泛型編程。作為C語言擴展,保存了C語言的大局部語法,在它的根底上引入了對象的模型,同樣設計C語言考慮的是實現對過程事物的控制,而C+這是思考如何構建對象模型。C+對C語言的擴展主要表現在1.類型檢查更加嚴格2.增加標準模版庫(STL)3.C+增添了面向對象4.C+還增添了對運算符的重載5.C+增添
30、泛型編程(Template)6.增添了異常處理。然而C語言和C+最大區(qū)別不是在于解決問題的方法,主要是解決問題的思想的方法不同。 錢能:C+程序設計教程(修訂版):設計思想與實現:清華大學,2009年7月C+的語言特點:1.語言靈活,能高效的執(zhí)行,具有高級語言的優(yōu)點,C+可以直接訪問物理地址。2.無需復雜的程序設計環(huán)境,多種平臺支持C+。3.C+靜態(tài)類型同C語言一樣具有高效且可移植性。4.面向對象語言,且有很多優(yōu)秀的程序框架如MFC、QT、OWL等。C+具體開發(fā)過程如圖1.1所示圖1.1 開發(fā)C+編程步驟MFC微軟根底類Microsoft Foundation Classes MFC(微軟根底
31、類是一種應用程序框架,隨著VC+開發(fā)工具發(fā)布,由一個CWinApp類對象和MFC派生類組成,可以看成為封裝了的Win32,該類庫提供可復用的類庫,微軟提供開發(fā)人員使用,MFC作為VC+的一局部,提供C+在windows平臺下的程序開發(fā)的效率和便利,MFC作為WinAPI微軟提供的Windows應用程序編程接口和C+的結合,允許第三方編程語言進展在Windows操作系統(tǒng)下應用程序的開發(fā),操作系統(tǒng)提供的API供發(fā)開人員使用,而系統(tǒng)部的實現,你可以不需知曉,可以說MFC是微軟API在C+中的封裝。其關鍵技術在消息映射和消息傳遞的消息處理機制,在SDK中沒有消息映射的概念,消息響應傳遞回調函數,然后判
32、斷消息類型,再接著處理。其中MFC中重要的幾個類:1.CWnd作為大多數窗口的父類,如CButton(按鈕)、CFrameWnd框架窗口、CDialog(對話框)等。2.CDialog對話框類。3.CDC全名設備文本,與GDI圖形設備接口一起負責文字圖像顯示的工作,通過對屏幕的像素點進展繪圖。4.CDocument,文檔類主要負責讀取和寫盤,處理存和磁盤的交互的。5.CWinApp應用程序類,MFC程序的主函數,程序編譯執(zhí)行的入口和出口,其中InitInstance函數負責初始化窗體。 人民郵電:MFC程序開發(fā)參考大全.:人民郵電,2007年9月6 *海蕃.軟件工程.:人民郵電,2002年 7
33、 MSDN中文.microsoft./china/msdn/8 郭寧.UML 級建模.:清華大學,2007年9 譚小丹,VC+編程思想.:冶金工業(yè),2009年 10 *海藩軟件工程導論第五版:清華大學,2008年11 *雅琴,夏玉杰.基于MFC的多媒體播放器的實現.信息技術, 2009年12 全子一,數字視頻處理.:電子工業(yè),2005年13 郝玉龍. C+編程技術.:清華大學,2008年14 王永樂,徐書欣.媒體播放器的制作技術.工業(yè)大學學報, 2006年 15 *炳文,VC+程序設計教程M.:清華大學,2009年Active*Active*控件或稱OC*控件,作為組件嵌入軟件或者網頁中,特點
34、有快速開發(fā),支持多語言的編程,在組件作為根底建立的Active*,為開發(fā)人員提供了一個開放集成的平臺,在WEB網頁和應用程序中應用廣泛.2 需求分析2.1 播放器軟件根本調查多媒體播放器的根本情況就是能對多種媒體格式的視頻音頻進展數字信號存儲的播放。在網絡上已經有了許多流行且優(yōu)秀的播放器,我們可以先去其概況和功能進展了解然后制定軟件需求。由騰訊公司開發(fā)制作的一款支持本地媒體文件本地播放器,能支持多種格式的視音頻,第一個創(chuàng)立輕量級多播放的核技術,作為一款純潔的多媒體播放器,沒有任何植入廣告,也沒有強制安裝其他軟件,且支持的格式多,深受好評。界面:新版的QQ影音的界面比舊版更為多彩,但還是一如既往
35、的簡潔,同時還提供換膚的功能,不是僅僅是把界面的背景做更改,而是把整體的布局和窗口的樣式以及顏色風格都做了改動。功能界面有進度條、播放控制按鈕、隱藏和顯示播放列表。播放控制功能:播放、暫停、停頓、上一曲、下一曲、調整進度。播放列表功能:添加文件夾、添加文件、刪除選中項、選中播放,翻開自動保存列表列表排序。播放循環(huán)功能:單一播放,順序播放,無序播放,單一循環(huán)播放,以及列表循環(huán)播放。對一個本地播放器來說,暴風影音功能算是較為強大的了。但是根據時代的開展,現在主流的播放器都是據有網絡播放和本地播放兩種功能。有效勞器支持的播放器可以直接在播放器中搜索視頻,代表暴風影音。作為本地播放器擁有播放器的功能,
36、良好的人機交互界面,已經流暢的解碼同時也作為網絡播放器,能在線檢索資源,在線播放和緩存媒體資源的軟件。功能強大,深受廣闊用戶的喜愛。還具有轉換格式可以對當前格式進展轉換,同時可以對播放文件進展片段的截取,可以把*塊片段截取下來保存,還有對視頻截圖,對當前畫面的保存成位圖。2.2 軟件功能分析多媒體播放器通過初步的對用戶群體調查我了解到作為用戶他的需求重點主要在如下幾個方面:要求功能齊全,兼容性強。程序必須具有比擬迅速的響應速度。程序要求占的系統(tǒng)資源比擬少,同時不存在二級或二級以上的BUG。具有美觀友好的人機交互的界面。還經過了對QQ影音、暴風影音等幾款多媒體播放器分了解,分析制定了多媒體播放器
37、的根底需求分析如下: 1.實現播放控制功能,播放控制包括播放、暫停、停頓以及上一曲和下一曲等根本的播放器控制功能,提供用戶進展操作,當播放音樂時播放界面就顯示波形動畫,還有添加全屏播放的功能,讓用戶得到更好的體驗。 2.實現進度的控制,進度控制包括播放進度條、快進和快退,方便用戶了解觀看進度已經對播放進度的控制和改變。每次快進或快退,播放進度前進或者退后百分之一,假設是播放進度的百分之一小于五秒則每次快進或者退后5秒。3.實現音量控制,上調或下調滑條來控制音量的增加或者減少,音量的變化不影響操作系統(tǒng)的音量,可以通過勾選音量按鈕來開關音量。4.實現播放列表以及列表的管理,設計一個按鈕能讓播放列表
38、顯示和隱藏,在列表中顯示媒體文件的信息,如文件名、文件格式、播放時長、所在硬盤的位置,能在列表里添加文件、移除選中的文件、雙擊播放選中的文件、清空列表、保存列表、還有調整文件所在列表的位置,導入列表和導出列表。5.實現支持多種格式音頻MP3、WMA等、視頻格式AVI、WMV等的翻開。6.實現菜單欄,將所以控制功能都對應實現在菜單欄中,設置快捷鍵的綁定,以方便用戶使用對應的功能和操作,有利于建立良好的人機交互的界面。7.界面簡潔整齊,讓用戶一目了然。8.實現播放循環(huán)模式,循環(huán)模式包括單一播放,順序播放,無序播放,單一循環(huán)播放,以及列表循環(huán)播放。9.實現程序托盤,讓程序可以化為最小化圖標在后臺運行
39、,在播放音樂時,可以給用戶更好的享受。10.定時關閉功能,該功能主要面向音頻方面的需求設計的作為音頻播放器時,或許睡覺看書時可以聽歌,為用戶設計計關機和關閉程序的功能。11.截圖功能,此功能面向視頻方面的需求,對于用戶在觀看影片時遇到的精彩畫面可以及時的截取下來保存。12.提供用戶換膚的功能,用戶可以自定義局部界面,讓其自己可以根據自己的喜好制定界面風格。具體功能用例圖見圖2.1所示。圖2.1 多媒體播放器用例圖2.3 軟件運行環(huán)境操作系統(tǒng):Windows 2000/Windows *P/Windows Vista/Windows 7 2.4業(yè)務流程分析首先開場程序,先是翻開一個文件,有兩種翻
40、開方式,一、從列表里添加文件或者導入列表翻開,二、直接翻開文件,如果文件是符合兼容的類型,然后開場播放,否則視為翻開失敗,播放過程中有一些的供用戶使用的操作,列表翻開可以使用列表的循環(huán)模式,用戶可以對列表進展一系列的操作。最后是退出,用戶使用完畢完畢程序。詳解見圖2.2所示.圖2.2 業(yè)務流程圖2.5數據流程分析根據播放控制模塊的數據流程分析,首先獲取媒體文件的信息,通過WMP的解碼器進展媒體文件的數據解碼,解碼成數據信息流,其中包括了聲音信息流和圖片信息流,聲音數據流通過系統(tǒng)進展聲音合成,聲卡承受到數據流處理并輸出。圖像數據流通過圖像編碼,再進展顯示控制的選項,顯卡獲取數據流,處理并輸出。關
41、于系統(tǒng)的數據流圖見圖2.3 和圖2.4所示.圖2.3 多媒體播放器系統(tǒng)頂層圖圖2.4 多媒體播放器系統(tǒng)0層圖播放列表模塊過翻開文件添加到播放列表中或者是通過列表添加功能添加文件,列表中以表格的形式分別文件名,文件的格式,文件播放的時長,文件路徑。一目了然的顯示媒體相關信息?;跁r間戳的播放過程中詳解見圖2.5僅僅對早到的或晚到的數據塊進展等待或快速處理,往往是不夠的 如果想要更加主動并且有效地調節(jié)播放性能,就需要引入反應機制,也就是通過比照音視頻的時間戳將當前數據流的播放狀態(tài)反應給上層的源 如果音頻流滯后,就即時通知音頻解碼器加快音頻流輸出,但是如果滯后太多,則直接將當前數據丟棄,直接跳到下一
42、幀;如果視頻流滯后,就通知音頻解碼器減慢音頻輸出速度等待視頻流,如滯后太多也直接進展跳幀 數據流首先通過別離器分解為視頻數據流和音頻數據流,然后經過對應的解碼器,同時由本地系統(tǒng)時鐘來進展時間戳控制;獲得準確顯示或回放時間以后進展時間戳比擬;假設同步則直接輸出,不同步則進展音頻跳幀或等待,直到同步后輸出。圖2.5 視頻音頻同步數據流程2.6 可行性分析開發(fā)工具 :Visual Studio 2013和VC+ 6.0開發(fā)語言:C+采用的是 Visual C+是 Windows 操作系統(tǒng)上常見的 C+開發(fā)工具,是Microsoft 公司推出的目前使用極為廣泛的基于 Windows 平臺的 C+的可視
43、化的開發(fā)環(huán)境。Visual C+ 6.0 編譯器負責將 C+源代碼編譯成匯編文件,轉變?yōu)橹虚g文件,然后使用連接器將相關的中間文件連接起來,生成可執(zhí)行的二進制文件。 Visual C+6.0 不僅是一個 C+編譯器,而且是一個基于 Windows 操作系統(tǒng)的可視化集成開發(fā)環(huán)境integrated development environment,IDE。Visual C+6.0許多組件組成,包括編輯器、調試器以及程序向導 AppWizard、類向導 Class Wizard等開發(fā)工具。這些組件通過一個名為 Developer Studio 的組件集成為和諧的開發(fā)環(huán)境。使用VC+ 6.0 編譯工具的
44、MFC完成對多媒體播放器的制作,在過去,計算機程序的目標是短小使得運行速度快的代碼,當今計算機的性能更好,價格更群眾,程序開發(fā)主要的經費從以前以硬件為主轉到了以程序維護、開發(fā)為主,所以當今程序設計的第一要務、目標是以可移植性,以維護性還有可讀性,做出一個播放器的途徑具有多種方式,但是因為主觀的原因開發(fā)語言和開發(fā)環(huán)境的限制,只能在這個根底上分析其他能夠達成目的的方法,根據查閱資料,目前根據需求能實現的有:用MFC里面提供的Active*控件,在選擇Windows Media Player組件,使用WMP組件提供的類,對類的使用和操作來完成對多媒體播放器的設計以及實現,可以快速的完成一個功能強大,
45、且兼容性和界面友好的多媒體播放器,在實際的工程的改方案會減少大量的本錢,有較好的開發(fā)效率。使用系統(tǒng)自帶多媒體接口MCI(多媒體應用編程接口),能在比組件更高的層次上控制媒體設備,操作較為繁瑣,卻能完成各種功能。綜上所述兩個條件分析,從開發(fā)效率上看的話,Active*控件的相對更高一些,可以在組件提供的類對象上進展對多媒體播放器的各種功能的。且對Active*的可讀性更好一些,在組件限制的方面我們采用MCI編程,使用MCI強大的對系統(tǒng)多媒體接口的操控,從而開發(fā)出一個完善的播放程序。3 系統(tǒng)總體設計3.1 概要設計播放器系系統(tǒng)的設計:翻開播放器,播放器程序首先進展對話框信息的初始化,初始化的過程中
46、初始化播放列表的信息,然后進展播放、暫停等等的播放控制,修改播放器列表,記得當前播放狀態(tài)信息,程序完畢。根據流程圖3.1所示播放系統(tǒng)流程圖圖3.1播放流程圖程序的應用初始化信息有窗口的類型,系統(tǒng)函數的,對話框的框架,文檔類等,對程序的各模塊進展初始化,以及播放器界面的初始化,然后讓程序運行加載。加載列表之前所保存的文件信息,顯示預留提供操作,之后可以執(zhí)行相關播放停頓等控制操作,也可以把程序最小化托盤,在后臺運行,需要時調出來使用,程序完畢前可以進展播放器配置和播放信息的保存,以供下次翻開程序加載使用。根據功能劃分為六大模塊,詳情見圖3.2所示.圖3.2 系統(tǒng)功能構造圖翻開media playe
47、r,media players先進展初始化,在翻開文件后進展播放列表的加載,接下來可以進展列表播放,列表數據的導入導出,列表的條目的排序和選項的上下挪動順序,選中的選項移除和清空表格功能,見表下3.1所示。表3.1 播放列表模塊功能設計播放列表模塊播放雙擊選中項來進展播放。列表的導入/導出導入或導出列表信息到二進制文本。選中項的上/下移動鼠標拖動或按鍵幫助移動改變選中項位置。清空列表或移除選中項點擊按鍵完成清空或選中再點擊功能按鍵。播放模式模塊有五種選擇模式,當前只能存在一種模式五選一,菜單欄中的播放模式按鍵互相排除的單項選則。還有有一個全屏播放模式。見下表3.2所示。表3.2 播放模式模塊功
48、能設計播放模式模塊單個播放和循環(huán)播放當前文件播放,或者連續(xù)的循環(huán)播放改文件。順序播放和循環(huán)播放按順序播放當前列表里的文件,播放完就停頓。循環(huán)當前播放。隨機播放在當前中隨機的選擇下個播放的文件。全屏全屏播放播放控制模塊包括對播放狀態(tài)的控制以及播放進度的控制。見表3.3所示。表3.3 播放控制模塊功能設計播放控制模塊播放狀態(tài)控制包括暫停,播放,停頓的播放狀態(tài)進展選擇,單擊相應按鍵實現播放狀態(tài)的切換,在沒有翻開文件和播放列表為空的情況下,按鍵點擊無效。通過上一個以及下一個進展列表中文件上下的切換,當前文件假設是在列表中的最后一個文件,下一個時則切到列表最上方的文件。播放進度控制包括快進,進度條,快退
49、。單擊快進前進總進度的百分之一,快退則是倒退總進度的百分之一。進度條不僅僅用來顯示當前的進度概況,通過拖動改變進度。下面是音量控制模塊。見表3.4所示。表3.4 音量控制模塊功能設計音量控制模塊音量的增減,靜音設置有開啟和關閉總音量的開關,關閉就是靜音,通過改變進度條調整增加或者減少音量大小。媒體文件模塊。見表3.5所示。表3.5 文件模塊功能設計文件模塊文件翻開并且播放媒體文件,對于無法兼容的文件不給供翻開功能。最后一個模塊是方案關閉模塊,主要是設置定時然后完成相應的關閉操作。主要適用于播放音樂文件的時候。詳細見表3.6 。表3.6 定時關閉定時關閉設置定時可以設置定時,設置規(guī)格最大為一天,
50、最小為一分鐘。定時操作定時時間到了之后執(zhí)行的操作,關機或者關閉程序。倒計時顯示和后臺顯示倒計時,開啟之后可以后臺,也可以停頓定時方案。3.2 界面設計翻開VC+ 6.0 New Poject MFC AppWizard E*E 界面選擇對話框模式,然后在對主對話框右鍵選擇右鍵菜單中Insert Active* Controls,向下翻找到Windows Media Player的組件對該組件右鍵屬性對組件屬性進展修改,ID設置為IDC_OC*1,在常規(guī)一欄下的控件布局選項中,把布局設置成None,這樣播放插件就只提供顯示功能而沒有其他的功能。我們把功能按鈕先布局好圖3.3 主界面所示,對應播放
51、控制使用編組框圈起來十字排列分成上一個,暫停,播放,停頓,下一個。播放模式使用下拉列表選擇播放的模式,音量設置單項選擇按鈕和滑動條,通過勾選單項選擇鍵來開啟或者關閉音量,通過滾動滑動條調節(jié)音量大小。播放進度用法滑動條和靜態(tài)文本來實現,左邊的文本是當前的播放時間,右邊的文本是該媒體文件的最大時長,中間放有滑動條,根據時間的推移,滑條跟著向右滑動,直到媒體文件播放完畢,滑條也劃到底部。在滑條右下方做了一個快進和快退的旋轉按鈕,按左邊的箭頭的功能是快退,每次快退總進度的百分分一,按右邊的箭頭的功能是快進,每次按動前進總進度的百分之一,同時拖動進度條也有調節(jié)播放進度的功能。右邊一整塊是用列表控件做的播
52、放列表,把風格里的視圖設置為報告,在列表下面添加5個管理列表的按鈕,翻開,添加,移除,清空,退出。圖3.3 播放器主界面整體來看這個播放器界面已經比擬完善了,就差把對應的功能實現了。所以我們所設計的界面根本如一下列圖3.4所展示的那樣子,以簡潔為主要風格,功能按鈕排布整齊,雖然于其他優(yōu)秀的播放器的界面相比差之甚遠,但是在MFC的界面算較好者。圖3.4 添加菜單欄后的播放器主界面4 詳細設計4.1 功能模塊詳細設計翻開播放器后,播放器先初始化,然后翻開文件,翻開的文件參加了播放列表,播放列表顯示了媒體文件的相關信息,然后進展播放,導入和導出文件列表和一些對應的列表管理的操作,清理和移動列表中文件
53、,之后可以選擇列表播放的模式,模式主要有五種,也可以進展播放狀態(tài)的控制,調整播放進度,改變音量的大小,切換當前播放的容等,具體見圖4.1所示。圖4.1 系統(tǒng)順序流程圖根據模塊的劃分,按文件、播放控制、播放列表、播放模式、音量的模塊順序逐步完成功能。在此之前先做一個菜單欄,在Resource view資源視圖對當前資源文件右鍵插入Menu菜單欄,對對話框右鍵屬性綁定IDR_MENU,或者是CMyMediaPlayerDlg的初始化函數中添加對菜單欄創(chuàng)立按鈕如下表4.1所示。表4.1 Menu按鍵信息表按鍵ID名稱熱鍵快捷鍵媒體文件(&F)ID_FILE_OPEN翻開(&O)tCtrl+OID_E
54、*IT退出(&W)tCtrl+W播放控制(&C)ID_MENU_PLAY播放(&P)tCtrl+F1ID_MENU_PAUSE暫停(&A)tCtrl+F2ID_MENU_STOP停頓(&T)tCtrl+F3ID_MENU_LAST上一個tCtrl+Alt+ID_MENU_NE*T下一個tCtrl+Alt+列表管理(&L)ID_MENU_ADD添加(&A)ID_MENU_DELETE刪除(&D)ID_MENU_CLEARN清空(&C)播放模式(&M)ID_MENU_SINGLE單個播放(&S)tAlt+F1ID_MENU_ORDER順序播放(&O)tAlt+F2ID_MENU_LOOP循環(huán)播放(
55、&L)tAlt+F3ID_MENU_RANDOM隨機播放(&R)tAlt+F4ID_MENU_SLELOOP單一循環(huán)(&E)tAlt+F5關于(&H)ID_MENU_ABOUTAbout My Media Player完成圖4.2 的設置后,需要在資源視圖里右鍵插入一個Accelerator,在里面添加對應菜單欄按鍵的ID和快捷鍵信息進展綁定。圖4.2 IDR_ACCELERATOR最后一步是對按鍵做消息映射,詳細如圖4.3的顯示的樣子在CMyMediaPlayer的BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之間的代碼行中添加我們形式如ON_MAND(ID_FI
56、LE_OPEN,OnOpen)第一個是按鍵ID第二個為相應的功能函數,這個是翻開文件的消息響應。具體圖4.3 菜單欄按鍵消息映射因為菜單欄各按鍵所對應的功能函數此時還并未實現,所以注釋起來,完成后的菜單欄圖4.4 所示。圖4.4 IDR_MENU菜單欄再運行看下主界面,在標題欄的正下方出現了菜單.4.1.1 文件模塊設計表4.2 文件模塊控件ID類型對應函數主要的作用IDC_OPENButtonvoid CMyMediaPlayerDlg:OnOpen()翻開文件,參加列表等見表4.2POSITION pos;UINT flag = LVIS_SELECTED|LVIS_FOCUSED;pos
57、 = m_list.GetFirstSelectedItemPosition(); int iInde*Num = m_list.GetNe*tSelectedItem(pos)獲取當前的列表中已經存在的文件數目,下面會使用到。char szFileFilter= All File(*.*)|*.*| Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma| Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav| AVI File(*.avi)|*.avi| Movie File(*.mov)|*.mov| Media F
58、ile(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi| MPEG File(*.mpeg)|*.mpeg|;CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);非模態(tài)顯示文件翻開的框,設置顯示的類型。if(IDOK = filedlg.DoModal() CString PathName = filedlg.GetPathName();for(int i=0;im_iListNum;i+)CString PathNameCMP;PathNameCMP=m_list.G
59、etItemTe*t(i,3);if(0 = PathName.pareNoCase(PathNameCMP)m_list.SetItemState(i, flag, flag); PathName=m_list.GetItemTe*t(i,3); m_schedule.SetRange(0,m_time);m_player.SetUrl(PathName);return;主要是查詢當前翻開的文件是否已經被翻開且存在播放列表里了,如果有則直接從列表里播放,跳過翻開環(huán)節(jié)。m_list.SetFocus();m_media = static_cast(m_player.newMedia(PathN
60、ame);m_playlist.appendItem(m_media); m_list.InsertItem(m_iListNum,m_media.GetName();m_list.SetItemTe*t(m_iListNum,1,m_media.getItemInfo(FileType);m_list.SetItemTe*t(m_iListNum,2,m_media.GetDurationString(); m_list.SetItemTe*t(m_iListNum,3,PathName); m_time = _ttol(m_media.getItemInfo(Duration); m_pl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場營銷渠道管理表
- Python大數據分析與挖掘實戰(zhàn):微課版(第2版)課件 第8章 深度學習與實現;第9章 基于財務與交易數據的量化投資分析;第10章 眾包任務定價優(yōu)化方案
- 資本市場服務下沉如何支持縣域經濟發(fā)展
- 生物科技進展報告表
- 農村土地制度改革與城鄉(xiāng)融合發(fā)展的路徑分析
- 化學元素周期表及周期律應用教學教案
- 低空經濟對傳統(tǒng)產業(yè)的升級影響
- 完善公共服務評價體系提高服務質量監(jiān)控能力
- 語言學跨文化交際語言測試卷分析
- 人教部編版三年級語文下冊《九月九日憶山東兄弟》示范公開課教學課件
- 美容院衛(wèi)生管理制度(常用版)
- 機場行李輸送系統(tǒng)設計論文-本科論文
- 白帶常規(guī)報告單模板
- 2022年全國工會財務知識大賽參考題庫精簡600題(含各題型)
- 新教材教科版五年級下冊科學全冊課時練(課后作業(yè)設計)(含答案)
- 《國學典籍英譯》課程教學大綱
- 校外畢業(yè)設計(實習)申請表模板.docx
- 鋼管懸挑腳手架搭設方案
- 《廚余垃圾處理廠運行監(jiān)管標準》(征求意見稿)
- 外科無菌操作技術PPT學習教案
- 火災報警控制器CAN聯網
評論
0/150
提交評論