版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(jì)報(bào)告(論文)</p><p> 題目:基于VC平臺的MCI媒體播放器</p><p> 所 屬 系 電子工程系 </p><p> 專 業(yè) 自 動(dòng) 化 </p><p> 學(xué) 號 </p><
2、;p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 起訖日期 2012.4 --- 2012.5 </p><p> 設(shè)計(jì)地點(diǎn) </p><p> 基于VC平臺的MCI媒體播放器</p&g
3、t;<p><b> 摘 要 </b></p><p> 目前常見的多媒體軟件應(yīng)該說各有特色,社會群體也廣泛使用,但是幾乎每一個(gè)都存在著不如人意的地方。我的課題是“基于VC平臺的MCI媒體播放器”,首先是初步介紹一些當(dāng)前的媒體及媒體播放器,然后是詳細(xì)介紹一個(gè)由本人設(shè)計(jì)的多媒體播放器――Myplayer。該播放器是基于MFC集成開發(fā)環(huán)境,利用系統(tǒng)的MCI命令接口來編程,
4、能實(shí)現(xiàn)打開、播放、前進(jìn)、后退、暫停、繼續(xù)、停止歌曲,添加滑動(dòng)條控件控制歌曲,支持歌手、歌名、歌詞的顯示,音量控制,同時(shí)還具體積小,支持的播放格式多、系統(tǒng)資源占用少、支持播放列表編輯、支持各種音頻格式等功能優(yōu)勢。</p><p> 關(guān)鍵詞:媒體播放器;MCI;播放列表;音頻;MFC</p><p> The MCI Media Player Designed by VC++ </p
5、><p><b> Abstract</b></p><p> There are different characteristic among the normal multimedia player at present, they are used by the whole society ,but there are shortcoming for all o
6、f these software nearly. My center is "The MCI Media Player Designed by VC++ ".Then introduce those media formats and players at present, then there is a particular presentation for the media player that design
7、ed by myself--Myplayer. This player is based on MFC, referring to MCI(media controller interface) from system, having many good functions</p><p> Keywords: media player;MCI;play list;audio;MFC</p>&l
8、t;p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p> 第一章 引 言1</p><p> 1.1 基于VC平臺的MCI播放器開發(fā)背景1</p><p&g
9、t; 1.2 系統(tǒng)概述及解決的主要問題1</p><p> 1.3 系統(tǒng)的指導(dǎo)思想、采用的相關(guān)理論及方法1</p><p> 1.4 多媒體播放器發(fā)展現(xiàn)狀及存在的問題2</p><p> 1.5 研發(fā)目的及意義3</p><p> 1.6 論文結(jié)構(gòu)3</p><p> 第二章 系統(tǒng)軟件
10、計(jì)劃4</p><p> 2.1 Visual C++簡介4</p><p> 2.2 媒體格式簡介4</p><p> 2.2.1 媒體4</p><p> 2.2.2 多媒體5</p><p> 2.3 常見播放器5</p><p> 2.3.1 Real Pl
11、ayer5</p><p> 2.3.2 Windows Player5</p><p> 2.3.3 Quick Time Player5</p><p> 2.4 關(guān)于Vfw.h介紹5</p><p> 第三章 系統(tǒng)需求分析與論證7</p><p> 3.1 需求分析7</p>
12、;<p> 3.1.1 播放器性能需求分析7</p><p> 3.1.2 播放器功能需求分析7</p><p> 3.2 可行性分析8</p><p> 3.3 方案論證8</p><p> 3.3.1系統(tǒng)方案論證8</p><p> 3.3.2 系統(tǒng)設(shè)計(jì)步驟9</p&
13、gt;<p> 3.4 MCI接口分析9</p><p> 3.4.1 MCI設(shè)備9</p><p> 3.4.2 MCI函數(shù)與命令10</p><p> 3.4.3 MCI命令消息接口方式12</p><p> 3.4.4 MCI命令字符串接口方式14</p><p> 第四章
14、 系統(tǒng)總體設(shè)計(jì)15</p><p> 4.1 系統(tǒng)總體功能架構(gòu)15</p><p> 4.1.1 系統(tǒng)功能模塊圖15</p><p> 4.1.2 系統(tǒng)總體設(shè)計(jì)流程圖15</p><p> 4.2 系統(tǒng)各功能模塊文字介紹17</p><p> 4.2.1 文件加載17</p>&
15、lt;p> 4.2.2 播放操作17</p><p> 4.2.3 文件管理17</p><p> 4.2.4 歌詞顯示17</p><p> 4.3 界面設(shè)計(jì)17</p><p> 4.3.1 界面設(shè)計(jì)的基本思想17</p><p> 4.3.2 基本界面設(shè)置17</p>
16、<p> 4.3.3 菜單的顯示設(shè)置18</p><p> 4.3.4 播放界面設(shè)置19</p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)20</p><p> 5.1 播放模塊20</p><p> 5.1.1 播放模塊界面20</p><p> 5.1.2 播放模塊ID分配及實(shí)現(xiàn)方法2
17、0</p><p> 5.1.3 播放模塊相關(guān)功能流程圖及實(shí)現(xiàn)原理21</p><p> 5.2 播放列表模塊29</p><p> 5.2.1 播放列表模塊界面29</p><p> 5.2.2 播放列表模塊ID分配及實(shí)現(xiàn)方法29</p><p> 5.2.3 播放列表功能模塊相關(guān)功能流程圖及實(shí)現(xiàn)
18、原理30</p><p> 5.3 歌詞模塊32</p><p> 5.3.1 歌詞模塊界面32</p><p> 5.3.2 歌詞模塊ID分配及實(shí)現(xiàn)方法32</p><p> 5.3.3 歌詞模塊相關(guān)功能流程圖及實(shí)現(xiàn)原理33</p><p> 5.4 星空旋律模塊34</p>
19、<p> 5.4.1 星空旋律模塊的實(shí)現(xiàn)34</p><p> 第六章 系統(tǒng)運(yùn)行結(jié)果35</p><p> 6.1 主界面35</p><p> 6.2 歌詞界面36</p><p> 6.3 星空旋律36</p><p> 第七章 結(jié)束語37</p><
20、p><b> 致 謝38</b></p><p> 參考文獻(xiàn)(References)39</p><p><b> 附 錄40</b></p><p><b> 第一章 引 言</b></p><p> 1.1 基于VC平臺的MCI播放器
21、開發(fā)背景</p><p> 在多媒體信息技術(shù)不斷發(fā)展的推動(dòng)下,互聯(lián)網(wǎng)上多媒體播放器使用的數(shù)目也在直線上升,這不僅僅是量上的提升,更是有質(zhì)的飛躍。隨著多媒體信息的編碼解碼能力的提升,人們可以欣賞到畫面更加清晰的視頻文件、音質(zhì)更加逼真的音樂,這些都讓多媒體與人們的生活走的更近。由此可以看出,多媒體播放器的發(fā)展在人們的工作、生活中有著舉足輕重的作用;開發(fā)一個(gè)多功能,使用便捷的播放器符合市場的發(fā)展需求,具有很大的內(nèi)在發(fā)
22、展?jié)摿Α4送?,對多媒體播放器的研究和實(shí)現(xiàn),也是對所學(xué)知識的一次提升和編寫程序能力的考驗(yàn)。</p><p> 隨著信息技術(shù)的飛速發(fā)展,形式多樣的數(shù)字化產(chǎn)品已經(jīng)開始成為繼PC機(jī)后的信息處理工具,在這種數(shù)字化潮流下,VC++已成為當(dāng)前研究和應(yīng)用的熱點(diǎn)之一,基于VC平臺的MCI多媒體播放器應(yīng)用也越來越廣泛。多媒體技術(shù)的概念和應(yīng)用出現(xiàn)于20世紀(jì)80年代初期,經(jīng)過十余年的發(fā)展,隨著計(jì)算機(jī)科學(xué)網(wǎng)絡(luò)的普及和多媒體技術(shù)的發(fā)展,已
23、成為計(jì)算機(jī)領(lǐng)域發(fā)展的熱點(diǎn)技術(shù),針對目前各種媒體格式,如何簡單方便的播放各類媒體已成為人們普遍關(guān)注的問題,而媒體播放器的開發(fā)也變得十分重要。</p><p> 隨著技術(shù)的發(fā)展,多媒體素材類型也增多,包括音頻、視頻、圖像、動(dòng)畫等,由于音視頻、圖像等的信息容量大,受硬件條件限制,以往多媒體應(yīng)用并不廣泛,隨著硬件技術(shù)的不斷提高,多媒體技術(shù)已為各類人員廣泛使用,開發(fā)多媒體課件、網(wǎng)絡(luò)課程、網(wǎng)站、應(yīng)用軟件、管理項(xiàng)目等均需利用
24、多媒體素材,因此開發(fā)制作這一播放器具有備現(xiàn)實(shí)意義,與其它多媒體播放器比較,這一多媒體播放器具有功能強(qiáng)大、占用空間小的特點(diǎn),它與現(xiàn)有多媒體資源應(yīng)用狀況緊密結(jié)合,既具有很強(qiáng)的直觀感,又不失一般性。</p><p> 1.2 系統(tǒng)概述及解決的主要問題</p><p> 根據(jù)學(xué)習(xí)研究,本媒體播放器的開發(fā)基于VC++ MFC的對話框,利用Windows MCI(Media Control In
25、terface)控件來實(shí)現(xiàn)各類媒體格式的播放及程序界面處理。[1]</p><p> 首先確定要解決的問題是弄清楚MCI函數(shù)與命令消息的名稱類型和功能;其次是通過分析媒體播放的具體過程,在打開媒體設(shè)備的過程中應(yīng)用程序需要做哪些事情,以便在應(yīng)用程序中加入對這些過程支持的代碼;在對應(yīng)用程序的流程有了大致的輪廓以后(最好畫出流程圖),再開始考慮程序框架的設(shè)計(jì),應(yīng)用程序外觀的設(shè)計(jì);最后也是最關(guān)鍵的就是編寫實(shí)現(xiàn)播放媒體的
26、代碼將播放器的基本功能實(shí)現(xiàn),緊接著就是程序的調(diào)試和完善。</p><p> 最后,本播放器的功能及解決的主要問題為打開、播放、前進(jìn)、后退、暫停、繼續(xù)、停止歌曲,添加滑動(dòng)條控件控制歌曲,支持歌手、歌名、歌詞的顯示,音量控制,以上種種都是基本的音樂播放器的基本功能,為了體現(xiàn)我的音樂播放器星空旋律的主題,在主菜單欄里隱藏了我對母校東南大學(xué)成賢學(xué)院的感謝,星空下的遐想、更是美好未來的動(dòng)人旋律!</p>&
27、lt;p> 1.3 系統(tǒng)的指導(dǎo)思想、采用的相關(guān)理論及方法</p><p> 本課題是采用Microsoft Visual C++6.0的MFC[框架構(gòu)建的,MFC框架是微軟公司推出的面向?qū)ο蟮目梢暬晒ぞ撸诙嗝襟w的設(shè)計(jì),分為以下幾個(gè)步驟進(jìn)行。</p><p> 首先確定要解決的問題是弄清楚MCI函數(shù)與命令消息的名稱類型和功能;其次是通過分析媒體播放器的具體過程,在打開媒體
28、設(shè)備的過程中應(yīng)用程序需要做哪些事情,以便在應(yīng)用程序中加入對這些過程支持的代碼;在對應(yīng)用程序的流程有了大致的輪廓以后,再開始考慮程序框架和應(yīng)用程序的外觀設(shè)計(jì);最后,也是最關(guān)鍵的就是編寫實(shí)現(xiàn)播放媒體的代碼將播放器的基本功能實(shí)現(xiàn),緊接著就是程序的調(diào)試和完善。</p><p> 面向?qū)ο笏枷氲幕咎卣鳎?1) 對象唯一性。每個(gè)對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。在對象的整個(gè)生命期中,它的標(biāo)識都不改變
29、,不同的對象不能有相同的標(biāo)識。(2)抽象性。抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。(3)繼承性。繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若
30、干新的內(nèi)容。(4)多態(tài)性。多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對象上并獲得不同的結(jié)果。不同的對象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。多態(tài)性允許每個(gè)對象以適合自身的方式去響應(yīng)共同的消息。多態(tài)性增強(qiáng)了軟件的靈活性和重用性。[2]</p><p> 采用的相關(guān)理論及方法:類是一種復(fù)雜的數(shù)據(jù)類型,它是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。這有點(diǎn)像C語言中的結(jié)構(gòu),唯一不
31、同的就是結(jié)構(gòu)沒有定義所說的“數(shù)據(jù)相關(guān)的操作”,“數(shù)據(jù)相關(guān)的操作”就是我們平常經(jīng)常看到的“方法”,因此,類具有更高的抽象性,類中的數(shù)據(jù)具有隱藏性,類還具有封裝性。[3]</p><p> 封裝性是面向?qū)ο蟪绦蛟O(shè)計(jì)中最重要的機(jī)制。這種機(jī)制改變了傳統(tǒng)的非面向?qū)ο蟪绦蛟O(shè)計(jì)中那種對不再適合要求的用戶定義數(shù)據(jù)類型進(jìn)行改寫甚至重寫的方法,克服了傳統(tǒng)程序設(shè)計(jì)方法對編寫出來的程序無法重復(fù)使用而造成資源浪費(fèi)的缺點(diǎn)。面向?qū)ο蟪绦蛟O(shè)計(jì)
32、的繼承機(jī)制提供了無限重復(fù)利用程序資源的一種途徑。通過C++語言中的繼承機(jī)制,可以擴(kuò)充和完善舊的程序設(shè)計(jì)以適應(yīng)新的需求,這樣不僅可以節(jié)省程序開發(fā)的時(shí)間和資源,并且為未來程序設(shè)計(jì)增添了新的資源。[4]</p><p> 1.4 多媒體播放器發(fā)展現(xiàn)狀及存在的問題</p><p> 隨著Internet的商業(yè)化,一些商家紛紛行動(dòng)規(guī)劃開發(fā)適用于本企業(yè)的播放器。根據(jù)iResearch艾瑞咨詢最新
33、推出的網(wǎng)民連續(xù)用戶行為研究系統(tǒng)iUserTracker的最新數(shù)據(jù)顯示,目前,比較流行的多媒體播放器有:Microsoft Windows Media Player、RealOne、豪杰超級解霸以及暴風(fēng)影音和Windows Media Player 是使用最廣泛的影視播放軟件,而這兩大播放器的核心編碼已成空間,因此全球網(wǎng)絡(luò)化的公司都在利用這兩大核心控件開發(fā)適合自己使用的播放器;網(wǎng)絡(luò)上也有不少的研究者熱衷于播放器的研究,利用控件或MCI接口
34、開發(fā)自己的播放器,并取得了很大的進(jìn)步,推動(dòng)著播放器的發(fā)展。該播放器是基于MCI控件,實(shí)現(xiàn)基本功能。</p><p> 多媒體技術(shù)已經(jīng)在如下若干方面開展了有效的應(yīng)用:①多媒體管理信息系統(tǒng)、展示系統(tǒng);②多媒體電子出版物(Title);③計(jì)算機(jī)輔助教學(xué)、教育培訓(xùn);④計(jì)算機(jī)藝術(shù)制作、設(shè)計(jì);⑤計(jì)算機(jī)娛樂-游戲、雙向電影;⑥協(xié)同工作。有發(fā)下三大發(fā)展趨勢:進(jìn)一步完善計(jì)算機(jī)支持的協(xié)同工作環(huán)境;智能多媒體技術(shù);把多媒體信息實(shí)時(shí)處
35、理和壓縮編碼算法集成到CPU中。但是目前大多音樂播放器播放功能單一、不智能,人們想要實(shí)現(xiàn)普通音樂播放器的所有功能則要需要多種播放媒介,不能使人們只運(yùn)行一種軟件就能實(shí)現(xiàn)以前兩三種軟件的所有功能,對系統(tǒng)資源的占用較多、負(fù)荷重,使電腦運(yùn)行速度變慢,基本上音樂播放器只是實(shí)現(xiàn)廣播的功能。</p><p> 在Internet 廣泛普及的今天, 音樂播放器以其較小數(shù)據(jù)量和近似完美的播放效果已經(jīng)成為計(jì)算機(jī)上和Internet
36、最流行的音樂格式了。自韓國世韓(Seahan)公司1998年推出世界上第一臺隨身聽以來,音樂播放器以其小巧的外形,不錯(cuò)的近乎于CD的音質(zhì),前衛(wèi)的功能,越來越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的一個(gè)熱門話題。</p><p> 當(dāng)前媒體播放器基本上滿足了大眾需求,但還存在如下問題:播放功能少,可操作性差;功能不兼容,不能使用于全球用戶;視頻質(zhì)量沒喲保障;平臺雜亂無章。</p><p
37、> 1.5 研發(fā)目的及意義</p><p> 該音樂播放器將克服普通音樂播放器功能單一、不智能的缺點(diǎn),使人們只使用一種播放器就能實(shí)現(xiàn)普通音樂播放器的所有功能,從而使人們只運(yùn)行一種軟件就能實(shí)現(xiàn)以前兩三種軟件的所有功能,進(jìn)而減輕了對系統(tǒng)資源的占用,使電腦運(yùn)行更快,使聽音樂比聽廣播更方便。在實(shí)際使用中,音樂播放器是人們經(jīng)常使用的媒體播放器,然而通過我的音樂播放器可以實(shí)現(xiàn)添加播放列表(按文件夾或按文件單獨(dú)添加
38、),隨機(jī)播放音樂、雙擊播放音樂、顯示歌詞、設(shè)置播放方式(隨機(jī)、順序、單曲)等功能,實(shí)現(xiàn)音樂播放的智能、全面、強(qiáng)大等,所以該音樂播放器有較大的研發(fā)意義。</p><p> 此次設(shè)計(jì)不僅具有操作簡便、界面友好等特性;而且在功能方面更貼近人們的生活習(xí)慣和操作習(xí)慣。此多媒體設(shè)計(jì)能識別多中格式的多媒體文件,其中包括WAV,MP3,MID,MOV等多媒體文件;在播放列表中可以加載一個(gè)或者多個(gè)多媒體文件;自動(dòng)連續(xù)播放多個(gè)多媒
39、體文件;用戶能隨意改變播放順序;在下次打開播放器時(shí),從上次關(guān)閉處繼續(xù)播放文件;在播放列表的多媒體文件播放完后可以選擇自動(dòng)關(guān)閉播放器或者循環(huán)播放。</p><p><b> 1.6 論文結(jié)構(gòu)</b></p><p> 論文主要由六部分組成,具體章節(jié)如下:</p><p> 是引言,主要是對基于VC平臺的MCI媒體播放器的課題背景、系統(tǒng)的概
40、述及解決的問題、課題的研究方法和相關(guān)理論、國內(nèi)外發(fā)展現(xiàn)狀及存在的問題、課題研究的目的和意義作簡單介紹。</p><p> 是軟件計(jì)劃,主要是介紹系統(tǒng)所用平臺VC++以及對當(dāng)前現(xiàn)存的媒體、多媒體、播放器做簡單的描述、VC++所支持Vfw的介紹。</p><p> 進(jìn)行了需求分析和方案論證,對MCI媒體播放器的可行性以及MCI接口進(jìn)行了分析,對各方案優(yōu)缺點(diǎn)進(jìn)行比較論證,選取最優(yōu)方案。<
41、;/p><p> 講解系統(tǒng)總體設(shè)計(jì)思想、總體設(shè)計(jì)流程圖、概括三個(gè)模塊基本功能、基本界面設(shè)計(jì)。</p><p> 詳細(xì)描述播放模塊、歌曲列表模塊、歌詞顯示模塊、星空旋律模塊的各功能流程圖、功能實(shí)現(xiàn)步驟,展示系統(tǒng)的優(yōu)點(diǎn)。</p><p> 系統(tǒng)調(diào)試運(yùn)行后的界面展示。</p><p> 對該設(shè)計(jì)的總結(jié),還有對遇到問題的描述,以及對MCI媒體播放
42、器研究的展望。</p><p><b> 系統(tǒng)軟件計(jì)劃</b></p><p> 2.1 Visual C++簡介</p><p> Microsoft公司1998年推出了Visual C++6.0,它是支持Win32平臺應(yīng)用程序(application)、服務(wù)(service)和控件(control)開發(fā)的可視化編程的集成環(huán)境。與VC
43、++5.0的最大不同之處是它的幫助功能更強(qiáng)大,MSDN(Microsoft Developer Networking)為包括VC++6.0在內(nèi)的所有微軟的程序產(chǎn)品提供在線幫助;另外,類的對象的可用成員函數(shù)、成員變量及函數(shù)的參數(shù)類型與個(gè)數(shù)都能動(dòng)態(tài)顯示在屏幕上,用戶無須記住那些復(fù)雜而又枯燥乏味的函數(shù)名及復(fù)雜的參數(shù),這無疑使得用VC++編程更加容易。所以VC++6.0可謂是Microsoft公司的王牌產(chǎn)品,編程功能強(qiáng)大而贏得廣大程序的偏愛。[
44、5]</p><p> 它以擁有“語法高亮”,自動(dòng)編譯功能、以及高級除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。</p><p> VC作為一個(gè)主流的開發(fā)平臺一直深受
45、編程愛好者的喜愛,但是很多人卻對它的入門感到難于上青天,究其原因主要是大家對他錯(cuò)誤的認(rèn)識造成的,嚴(yán)格的來說VC++不是門語言,雖然它和C++之間有密切的關(guān)系,如果形象點(diǎn)比喻的話,可以把C++看作為一種“工業(yè)標(biāo)準(zhǔn)”,而VC++則是某種操作系統(tǒng)平臺下的“廠商標(biāo)準(zhǔn)”,而“廠商標(biāo)準(zhǔn)”是在遵循“工業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來的。</p><p> VC++應(yīng)用程序的開發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MF
46、C方式,傳統(tǒng)的WIN API開發(fā)方式比較繁瑣,而MFC則是對WIN API再次封裝,所以MFC相對于WIN API開發(fā)更具備效率優(yōu)勢,但為了對WINDOWS開發(fā)有一個(gè)較為全面細(xì)致的認(rèn)識,在這里還是以講解WIN API的相關(guān)內(nèi)容為主線。</p><p> 2.2 媒體格式簡介</p><p><b> 2.2.1 媒體</b></p><
47、p> 一般來說,媒體(medium,復(fù)數(shù)形式為media)是一種信息發(fā)布和表現(xiàn)的方法[2],如正文、圖形、語音、音樂等,可按不同的標(biāo)準(zhǔn)分類。CCITT將媒體定義為以下五種:[6]</p><p> ①感覺媒體(Perception medium):能直接作用于人的感官,使人產(chǎn)生感覺的媒體。如語言、音樂、圖形、活動(dòng)圖像、文本等。我們所講的“多媒體”意義上的媒體,主要是指這一類媒體。感知媒體幫助人們來感知環(huán)
48、境。要解決的問題是:人在計(jì)算機(jī)環(huán)境中如何感知信息?就目前而言,人類主要靠視覺和聽覺來感知環(huán)境的信息,觸覺作為一種感知方式也慢慢引入到計(jì)算機(jī)系統(tǒng)中。</p><p> ?、诒硎久襟w(Representation medium):為傳輸感覺而研究出來的中間手段,以便更有效地將感覺從一地傳往另一地。表示媒體的特征用計(jì)算機(jī)內(nèi)部表示來刻畫。要解決的主要問題是:計(jì)算機(jī)信息如何編碼,例子有:</p><p&
49、gt; 文本字符用ASCⅡ或EBCDIC碼表示。</p><p> 圖像可以用JPEG格式BMP格式編碼。</p><p> 組合音頻/視頻序列可以用不同的TV標(biāo)準(zhǔn)格式(PAL、SECAM等)編碼。</p><p> ③表現(xiàn)媒體(Perception medium):用于信息傳輸中電信號和感覺媒體之間轉(zhuǎn)換所用的媒體,意指信息輸入/輸出的工具和設(shè)備。要解決的問
50、題是:信息通過何種媒體輸入到計(jì)算機(jī)中或從計(jì)算機(jī)中輸出?輸出媒體的例子有屏幕、紙和喇叭,而輸入媒體的例子有鍵盤、鼠標(biāo)、攝像機(jī)和麥克風(fēng)等。</p><p> ?、艽鎯γ襟w(Storage medium):用于存儲表示媒體的載體。數(shù)據(jù)存儲并不局限于計(jì)算機(jī)的部件,因此,紙也是一種存儲媒體。要解決的問題是:信息存儲在什么地方?存儲媒體的例子有:縮微膠片、磁</p><p><b> 盤等
51、。</b></p><p> ?、輦鬏斆襟w(Transmission medium):用來將表示媒體從一地傳輸?shù)搅硪坏氐奈锢韺?shí)體。要解決的問題是,在什么上面?zhèn)鬏斝畔??目前主要使用網(wǎng)絡(luò)來進(jìn)行信息傳輸,網(wǎng)絡(luò)介質(zhì)有同軸電纜、光纖等,無線方式進(jìn)行通信正變得越來越廣泛。</p><p><b> 2.2.2 多媒體</b></p><p>
52、 從字面上看,所謂多媒體multimedia,就是多種媒體的綜合,多媒體處理技術(shù)涉及到以上五種媒體形式。但這樣的理解沒有接觸到多媒體概念的特定的內(nèi)涵,是遠(yuǎn)遠(yuǎn)不夠的。為了辨析多媒體的含義,我們給出兩個(gè)多媒體定義進(jìn)行比較:[7]</p><p> ?、俣嗝襟w是指這樣的一個(gè)計(jì)算機(jī)系統(tǒng):交互式綜合處理多種媒體信息-文本、圖形、圖像和聲音等,使多種信息建立邏輯連接,集成為一個(gè)具有交互性的系統(tǒng)。(Lippincatt ,B
53、yte 1990年)</p><p> ②多媒體是下面兩種以上媒體組成的結(jié)合體:文本、圖形、動(dòng)畫、圖像、視頻、聲音等。(IBM ,multimedia Foundation,1990年)</p><p> 顯然,定義②是有問題的,因?yàn)榘催@個(gè)定義,電視節(jié)目就可以看作是多媒體。這是因?yàn)?,這個(gè)定義沒有體現(xiàn)出多媒體計(jì)算機(jī)技術(shù)的關(guān)鍵特性。定義①較好地體現(xiàn)了這一點(diǎn):即多媒體的含義除多種媒體外,還包
54、括集成性和交互性兩個(gè)重要的特性。</p><p> 2.3 常見播放器</p><p> 2.3.1 Real Player</p><p> RealNetworks推出的Real Player是目前最受歡迎的網(wǎng)絡(luò)流媒體播放器,它幾乎支持所有的媒體文件格式。除了RealNetworks自己推出的流媒體格式ram、rmm、ra、rm、rp、rt外,還支持S
55、MIL、SWF、MP3、WMA、AVI、MPEG、JPEG、GIF及PNG等格式,但不支持Quick Time的文件格式。</p><p> Real One Player是RealNetworks公司最新推出的一種新型音-視頻綜合播放系統(tǒng),以取代該公司現(xiàn)有的3種主打產(chǎn)品,即Real Player、Real Jukebox和Gold Pass。Real One Player 的一大特點(diǎn)是多層畫面功能,即當(dāng)一個(gè)
56、屏幕播放影碟或歌曲的時(shí)候,旁邊有一個(gè)側(cè)屏幕提 供有關(guān)影碟或歌曲的信息或廣告,可以將豐富多彩的Web頁面、生動(dòng)傳神的畫面及聲音、相關(guān)背景的文字整合在同一個(gè)畫面上,使用戶得到一個(gè)完整的聲、視、訊信息。[8]</p><p> 2.3.2 Windows Player</p><p> Windows Media Player是一個(gè)基于Direct Show體系結(jié)構(gòu)的多媒體播放器。微軟借助自
57、己在 操作系統(tǒng)上的優(yōu)勢,將其作為操作系統(tǒng)默認(rèn)的媒體播放器,目前最新的版本是9.0。它幾乎支持Windows下的所有媒體文件格式,包括CD音 頻曲目文件、ASF 、MPEG-1、MPEG-2、WAV、AVI、MIDI、VOD、AU、MP3等,同時(shí)可以播放Quick Time文件。[9]</p><p> 2.3.3 Quick Time Player</p><p> Quick Tim
58、e Player是Apple公司的媒體播放器,現(xiàn)已推出了Quick Time 6.0版,還有Windo ws版和Mac版,其特點(diǎn)是和Internet緊密結(jié)合,安裝是在網(wǎng)上進(jìn)行的。Quick Time Player能夠直接播放的格式有Quick Time電影、AVI、AIFF音頻、SGI圖像、Macromedia Flash等。此外,Quick Time Player還能夠輸入各種格式的音頻、視頻和圖像媒體文件,并能轉(zhuǎn)換輸出為其他格式。Q
59、uick Time Player還支持基于HTTP、RTP、RTSP、FTP流格式的在線音頻和視頻。[10]</p><p> 2.4 關(guān)于Vfw.h介紹</p><p> VFW是Microsoft 1992年推出的關(guān)于數(shù)字視頻的一個(gè)軟件包,它能使應(yīng)用程序數(shù)字化并播放從傳</p><p> 統(tǒng)模擬視頻源得到的視頻剪輯。Vfw的一個(gè)關(guān)鍵思想是播放時(shí)不需要專用
60、硬件,為了解決數(shù)字視頻數(shù)據(jù)量大的問題,需要對數(shù)據(jù)進(jìn)行壓縮。它引進(jìn)了一種叫AVI的文件標(biāo)準(zhǔn),該標(biāo)準(zhǔn)未規(guī)定如何對視頻進(jìn)行捕獲、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲在硬盤上,在AVI文件中交替存儲視頻幀和與之相匹配的音頻數(shù)據(jù)。Vfw給程序員提供VBX和AVI Cap窗口類的高級編程工具,使程序員能通過發(fā)送消息或設(shè)置屬性來捕獲、播放和編輯視頻剪輯。現(xiàn)在用戶不必專門安裝VFW了,Windows本身包括了Video for Windows1.1,
61、當(dāng)用戶在安裝Windows時(shí),安裝程序會自動(dòng)地安裝配置視頻所需的組件,如設(shè)備驅(qū)動(dòng)程序、視頻壓縮程序等。[11]</p><p> Vfw主要由以下六個(gè)模塊組成: </p><p> AVICAP.DLL:包含了執(zhí)行視頻捕獲的函數(shù),它給AVI文件I/O和視頻、音頻設(shè)備驅(qū)動(dòng)程序提供一個(gè)高級接口;</p><p> MSVIDEO.DLL:用一套特殊的DrawDib
62、函數(shù)來處理屏幕上的視頻操作;</p><p> MCIAVI.DRV:此驅(qū)動(dòng)程序包括對VFW的MCI命令的解釋器;</p><p> AVIFILE.DLL:支持由標(biāo)準(zhǔn)多媒體I/O(mmio)函數(shù)提供的更高的命令來訪問.AVI文件;</p><p> 壓縮管理器(ICM):管理用于視頻壓縮-解壓縮的編解碼器(CODEC); </p><p&
63、gt; 音頻壓縮管理器ACM:提供與ICM相似的服務(wù),不同的是它適于波形音頻。 </p><p> Visual C++在支持Vfw方面提供有vfw32.lib、msacm32.lib、winmm.lib等類似的庫。特別是它提供了功能強(qiáng)大、簡單易行、類似于MCIWnd的窗口類AVICap。AVICap為應(yīng)用程序提供了一個(gè)簡單的、基于消息的接口,使之能訪問視頻和波形音頻硬件,并能在將視頻流捕獲到硬盤上的
64、過程中進(jìn)行控制。</p><p> 第三章 系統(tǒng)需求分析與論證</p><p><b> 3.1 需求分析</b></p><p> 3.1.1 播放器性能需求分析</p><p> 隨著計(jì)算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)的普及,多媒體素材類型越來越多,包括音頻、視頻、圖像、動(dòng)畫等,由于音視頻、圖像等的信息容量大,受硬件
65、條件限制,以往多媒體應(yīng)用并不廣泛,隨著硬件技術(shù)的不斷提高,多媒體技術(shù)已為各類人員廣泛使用,開發(fā)多媒體課件、網(wǎng)絡(luò)課程、網(wǎng)站、應(yīng)用軟件、管理項(xiàng)目等均需利用多媒體素材。經(jīng)過市場需求分析,若當(dāng)前研發(fā)一款多媒體播放器,市場對播放器基本的性能需求如圖3-1所示:</p><p> 圖3-1 播放器基本性能需求</p><p> 3.1.2 播放器功能需求分析</p><p>
66、; 音樂是一種符號,聲音符號,表達(dá)人們的所思所想,是人們的思想載體之一。音樂是有目的的,是有內(nèi)涵的,其中隱含了作者的生活體驗(yàn),思想情懷。音樂從聲波上分析她介于噪音和頻率不變的純音之間,從效果上講她可以給人們帶來美得享受和表達(dá)人的情感。音樂是社會行為的一種形式,通過音樂人們可以相互交流感情和體驗(yàn)生活,在歌曲中這種感受最為突出。近年來,大陸、香港、臺灣以及全球其他地區(qū)的華人流行音樂不斷交流,開始出現(xiàn)相互融洽、匯集的趨勢。因此開始出現(xiàn)“全球
67、華語流行音樂”的總體稱謂。一個(gè)突出的表現(xiàn):中國大陸作為全球最大的消費(fèi)市場之一,港臺、海外各大流行音樂榜單的發(fā)布和編制越來越多的開始關(guān)注大陸市場。值得注意的是,在流行音樂當(dāng)中,有著一種民謠性質(zhì)的音樂,它們的代表是校園民謠、都是民謠、軍營民謠,這些民謠在流行音樂中亦占有一席之地,曾經(jīng)都有其輝煌的歲月,民謠純樸的曲調(diào),通俗的歌詞亦感動(dòng)了很多人??梢娨魳烦蔀榱巳藗兩钪斜夭豢缮俚囊徊糠?,所以音樂播放器也必不可少。如果當(dāng)前研發(fā)一款音樂播放器,市場
68、對音樂播放器的功能需求如圖3-2所示:</p><p> 圖3-2 播放器基本功能需求</p><p> 3.2 可行性分析</p><p> 要開發(fā)一個(gè)軟件程序,其方案十分重要。一個(gè)合理可行的方案有助于減少程序員的工作量、縮短開發(fā)周期,更重要的是可以開發(fā)出運(yùn)行效率更高、可移植性更好、健壯性更強(qiáng)的代碼。</p><p> 本程序的開
69、發(fā)用的是VC++的MFC集成開發(fā)環(huán)境,開發(fā)本程序的方案大概有如下二種:</p><p> 1.利用VC開發(fā)環(huán)境提供的ActiveX控件――Active Movie Control Object。[12]</p><p> 2.利用系統(tǒng)自帶的MCI命令接口來編程。</p><p><b> 3.3 方案論證</b></p>
70、<p> 3.3.1 系統(tǒng)方案論證</p><p> 第一種方法是使用ActiveX控件,MFC可以利用“Active Movie Control Object”控件直接操作,實(shí)現(xiàn)起來非常簡單,但用到的是完全別人的東西,故而不是太好。</p><p> 第二種方法是使用系統(tǒng)自帶的MCI命令接口。MCI包含在系統(tǒng)的Vfw.h文件中,參數(shù)較多,功能比較齊全,雖然使用起來比較煩瑣
71、,但是更具有開發(fā)意義。</p><p> 綜上所述,使用系統(tǒng)自帶的MCI命令接口來編程的方法是比較理想的選擇。以下的開發(fā)設(shè)計(jì)流程就是基于第二種方案的設(shè)計(jì)流程。</p><p> 3.3.2 系統(tǒng)設(shè)計(jì)步驟</p><p> 該播放器的設(shè)計(jì)步驟如下:</p><p> 第一步:根據(jù)設(shè)計(jì)指標(biāo)要求進(jìn)行系統(tǒng)需求分析,并進(jìn)行系統(tǒng)調(diào)研。</p
72、><p> Visual C++是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應(yīng)用有很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實(shí)際
73、中,更多的是以Visual C++6.0為平臺。[13]</p><p> 它是支持 Win32 平臺應(yīng)用程序(application)、服務(wù)(service)和控件(control)開發(fā)的可視化編程的集成環(huán)境。與VC++5.0 的最大不同之處是它的幫助功能更強(qiáng)大,MSDN(Microsoft Developer Networking)為包括 VC++6.0 在內(nèi)的所有微軟的程序產(chǎn)品提供在線幫助;另外,類的對象
74、的可用成員函數(shù)、成員變量及函數(shù)的參數(shù)類型與個(gè)數(shù)都能動(dòng)態(tài)顯示在屏幕上,用戶無須記住那些復(fù)雜而又枯燥乏味的函數(shù)名及復(fù)雜的參數(shù),這無疑使得用 VC++編程更加容易。所以 VC++6.0 可謂是 Microsoft 公司的王牌產(chǎn)品,編程功能強(qiáng)大而贏得廣大程序的偏愛。</p><p> 第二步:明確系統(tǒng)實(shí)現(xiàn)功能,其主要功能:</p><p> (1)打開文件,一種是通過主界面上的打開文件按鈕,二
75、是通過文件列表的添加文件按鈕。</p><p> (2)播放控制,包括:播放(暫停),停止,上一首,下一首,播放進(jìn)程控制,音量控制的調(diào)節(jié)。</p><p> (3)列表文件的添減操作</p><p> (4)搜索歌詞并顯示,界面簡明,操作簡單</p><p> 第三步:構(gòu)建整體框架,進(jìn)行系統(tǒng)各個(gè)模塊設(shè)計(jì):</p><
76、;p> (1)文件加載,包括打開文件和添加文件功能。</p><p> (2)播放操作,包括播放開始、暫停、停止,上一首、下一首,音量調(diào)節(jié),播放進(jìn)程管理等。</p><p> (3)文件管理,包括查看文件屬性,播放列表的保存、新建和重命名等。</p><p> (4)當(dāng)播放的文件類型為MP3類型是,系統(tǒng)的歌詞管理模塊將自動(dòng)搜索相關(guān)歌詞,并顯示。<
77、/p><p> 第四步:進(jìn)行軟件編程,編寫源代碼實(shí)現(xiàn)各模塊功能,并對各模塊進(jìn)行測試,使各模塊能正常運(yùn)行,為下一步的系統(tǒng)整體成功運(yùn)行做好準(zhǔn)備工作。</p><p> 第五步:完善系統(tǒng)設(shè)置,并對系統(tǒng)進(jìn)行測試,運(yùn)行系統(tǒng)軟件,打開歌曲,嵌入歌曲,提取歌曲,發(fā)現(xiàn)問題、修正系統(tǒng),反復(fù)測試,使系統(tǒng)趨于穩(wěn)定、準(zhǔn)確。</p><p> 3.4 MCI接口分析</p>
78、<p> Windows MCI(media control interface)是控制多媒體設(shè)備的高層、通用的命令接口。它可有效地控制多媒體設(shè)備。MCI可控制所有Windows能驅(qū)動(dòng)的多媒體設(shè)備,包括CD音頻(CD Audio)、數(shù)字視頻、動(dòng)畫、數(shù)字化波形聲音、MIDI音序器、錄像機(jī)及影碟機(jī)等。[14]</p><p> MCI包含在Windows系統(tǒng)的Vfw.h庫中,有以協(xié)調(diào)多媒體事件和MCI
79、設(shè)備驅(qū)動(dòng)程序之間的通信。一些MCI設(shè)備驅(qū)動(dòng)程序,如影碟機(jī)設(shè)備驅(qū)動(dòng)程序,可以直接控制目標(biāo)設(shè)備;而另外一些MCI設(shè)備驅(qū)動(dòng)程序,如Wave和MIDI設(shè)備驅(qū)動(dòng)程序,可通過MMSYSTEM中的函數(shù),間接控制目標(biāo)設(shè)備;還有一些MCI設(shè)備驅(qū)動(dòng)程序則提供與其他Windows動(dòng)態(tài)鏈接庫連接的高層接口。</p><p> 3.4.1 MCI設(shè)備</p><p> 使用MCI的應(yīng)用程序通過指定MCI的設(shè)備來
80、區(qū)分MCI設(shè)備,設(shè)備類型說明了設(shè)備的物理類型。表3.1表出了可能用到的MCI設(shè)備類型。[15]</p><p> 表3.1 MCI設(shè)備類型</p><p> 3.4.2 MCI函數(shù)與命令</p><p> 應(yīng)用程序能過MCI設(shè)備發(fā)送命令(命令消息或命令字符串)來控制MCI設(shè)備,MCI命令可以分為4類,如下所述:</p><p> 系統(tǒng)
81、命令:直接由MCI解釋并由系統(tǒng)處理,是不傳送到MCI設(shè)備的命令。</p><p> 通用命令:所有MCI設(shè)備都支持的MCI命令。</p><p> 可選命令:MCI設(shè)備可選擇使用的MCI命令。</p><p> 專用命令:針對某類MCI設(shè)備或集合的專有MCI命令。</p><p> MCI定義了兩種接口方式,即命令消息方式和命令字符串
82、方式。相應(yīng)地,MCI命令可分為命令消息和命令字符串。主要的MCI命令及分類如表3.2所示,這些命令可能具有其相應(yīng)的擴(kuò)展形式。[16]</p><p> 表3.2 MCI命令列表</p><p><b> 表3.2 (續(xù))</b></p><p> MCI命令都可以帶兩個(gè)標(biāo)志命令來控制命令的方式,即“wait”和“notify”。它們在命令
83、消息和命令字符串接口的形式和意思如表3.3所示。[17]</p><p> 表3.3 MCI標(biāo)志命令</p><p> 所有MCI函數(shù)都以mci為前綴。對應(yīng)于MCI命令消息和命令字符串接口方式,MCI函數(shù)也分為兩類,即命令消息函數(shù)和命令字符串函數(shù)。在Vfw.h中定義了這些函數(shù)的原型。MCI函數(shù)如表3.4所示。</p><p> 表3.4 MCI函數(shù)</p
84、><p><b> 表3.4 (續(xù))</b></p><p> 3.4.3 MCI命令消息接口方式</p><p> MCI命令消息接口方式利用消息和數(shù)據(jù)結(jié)構(gòu)來給多媒體設(shè)備發(fā)送命令和接收MCI設(shè)備傳來的信息。這種方式的接口函數(shù)主要有3個(gè),即mciSendCommand, mciGetDeviceID和mciGetErrorString。它們的
85、函數(shù)原型如下:[18]</p><p> MCIERROR mciSendCommand</p><p><b> (</b></p><p> MCIDEVICEID IDDevice, //設(shè)備ID</p><p> UINT uMsg, //命令消息</p><
86、p> DWORD fdwCommand, //命令消息標(biāo)志</p><p> DWORD dwParam //命令消息使用的結(jié)構(gòu)參數(shù)地址</p><p><b> );</b></p><p> MCIDEVICEID mciGetDeviceID </p><p><b&
87、gt; (</b></p><p> LPCTSTR lpszDevice //設(shè)備類型</p><p><b> );</b></p><p><b> BOOL </b></p><p><b> (</b></p><p>
88、 DWORD fdwError, //錯(cuò)誤代碼</p><p> LPTSTR lpszErrorText, //錯(cuò)誤描述</p><p> UINT cchErrorText //錯(cuò)誤描述長度</p><p><b> );</b></p><p> mciGetDeviceID通過
89、傳送MCI設(shè)備名lpszDevice來獲取MCI_OPEN命令消息找開MCI設(shè)備的標(biāo)識號wDeviceID,其值可用于mciSendCommand的參數(shù)wDeviceID。mciSendCommand用于向標(biāo)識號為wDeviceID的MCI設(shè)備發(fā)送命令消息uMsg。當(dāng)用送MCI_OPEN命令消息打開一個(gè)設(shè)備時(shí),將自動(dòng)創(chuàng)建一個(gè)設(shè)備標(biāo)識號。如果設(shè)備打開成功,可以從MCI_OPEN_PARMS結(jié)構(gòu)的wDeviceID數(shù)據(jù)域中取得該設(shè)備的標(biāo)識號
90、,該值將保存以供后續(xù)的MCI命令使用。如果mciSendCommand調(diào)用成功,則返回值為0;否則表示設(shè)備驅(qū)動(dòng)出錯(cuò),這時(shí)可用mciGetErrorString來取得錯(cuò)誤信息的文字描述。</p><p> MCI提供一個(gè)名為MCI_ALL_DEVICE_ID的特殊設(shè)備標(biāo)識號。當(dāng)前所有已打開的MCI設(shè)備都將接收到對MCI_ALL_DEVICE_ID發(fā)送的任何MCI命令。</p><p>
91、使用任何一個(gè)MCI設(shè)備前都應(yīng)先用MCI_OPEN打開它。打開MCI設(shè)備時(shí),要求指定相應(yīng)的MCI_OPEN_PARMS結(jié)構(gòu)。如果打開設(shè)備成功,則該結(jié)構(gòu)的wDeviceID域返回MCI設(shè)備的標(biāo)識號ID。</p><p> 使用MCI_OPEN命令消息時(shí)可使用的命令消息中表3.5所示。MCI_OPEN_PARMS結(jié)構(gòu)定義如下:</p><p> typedef struct</p>
92、;<p><b> {</b></p><p> DWORD dwCallback; //回調(diào)窗口句柄</p><p> MCIDEVICEID wDeviceID; //設(shè)備打開成功,返回的設(shè)備號</p><p> LPCSTR lpstrDeviceType; //設(shè)備類型</p>
93、;<p> LPCSTR lpstrElementName; //復(fù)合設(shè)備的設(shè)備元素,通常為文件名</p><p> LPCSTR lpstrAlias; //指定的設(shè)備別名</p><p><b> } </b></p><p> MCI_OPEN_PARMS;</p><p&
94、gt; 表3.5 MCI_OPEN命令消息標(biāo)志</p><p> 打開一個(gè)簡單的MCI設(shè)備不需要指定設(shè)備元素,即不需要指定一個(gè)數(shù)據(jù)文件,所以可以僅僅指定MCI_OPEN_PARMS結(jié)構(gòu)中的wDeviceID和lpstrDeviceType兩個(gè)數(shù)據(jù)域。要打開一個(gè)復(fù)合的MCI設(shè)備,必須指定設(shè)備元素?cái)?shù)據(jù)域lpstrElementName和設(shè)備類型數(shù)據(jù)域lpstrDeviceType。對于打開復(fù)合MCI設(shè)備,有以下3
95、種方式可供選擇:</p><p> 為確定MCI設(shè)備的性能,可以只指定設(shè)備的類型來打開MCI設(shè)備。這時(shí),只允許確定MCI設(shè)備的性能,然后關(guān)閉設(shè)備,不般不能進(jìn)行其它的操作。</p><p> 為使一個(gè)設(shè)備元素與指定設(shè)備相聯(lián)系,應(yīng)同時(shí)指定設(shè)備元素(數(shù)據(jù)文件名)和設(shè)備類型。這時(shí)可對設(shè)備進(jìn)行相應(yīng)的各種操作。</p><p> 在使用隱含的MCI設(shè)備時(shí),可只指定MCI設(shè)
96、備(數(shù)據(jù)文件名),而把設(shè)備類型指定為NULL;MCI將根據(jù)設(shè)備元素的擴(kuò)展名從系統(tǒng)定義中選擇隱含約定的MCI設(shè)備。</p><p> 應(yīng)用程序在使用完一個(gè)MCI設(shè)備后應(yīng)明確地關(guān)閉該MCI設(shè)備。MCI_CLOSE命令消息用于關(guān)閉并釋放MCI設(shè)備,即取消應(yīng)用程序?qū)CI設(shè)備或設(shè)備元素的訪問權(quán)。</p><p> 當(dāng)用MCI_SYSINFO命令消息獲取MCI設(shè)備系統(tǒng)信息時(shí),需要在mciSend
97、Command的dwParam參數(shù)中指定MCI_SYSINFO_PARMS結(jié)構(gòu)的地址,系統(tǒng)信息將通過該結(jié)構(gòu)返回。與MCI_SYSINFO命令消息相關(guān)的消息標(biāo)志如表3.6所示。MCI_SYSINFO_PARMS結(jié)構(gòu)定義如下:</p><p> typedef struct {</p><p> DWORD dwCallback;//回調(diào)窗口句柄 </p><p>
98、 LPSTR lpstrReturn; //返回信息緩沖區(qū)地址</p><p> DWORD dwRetSize; //返回信息大小</p><p> DWORD dwNumber; //索引號</p><p> UINT wDeviceType; //設(shè)備類型</p><p> } MCI_SYSINFO_PARMS;</
99、p><p> 表 3.6 MCI_SYSINFO命令消息標(biāo)志</p><p> 在使用MCI設(shè)備時(shí),還應(yīng)注意共享、等待與通告等標(biāo)志的使用。</p><p> 3.4.4 MCI命令字符串接口方式</p><p> MCI命令字符串使用ASCII字符串來發(fā)送驅(qū)動(dòng)MCI設(shè)備的命令,這種方式采用的接口函數(shù)有mciSendString、mciGe
100、tErrorString。mciSendString用于向MCI設(shè)備發(fā)送命令字符串,其函數(shù)原型如下:[19]</p><p> MCIERROR mciSendString</p><p> LPCTSTR lpszCommand, //指向一個(gè)以NULL結(jié)尾的MCI命令字符串,格//式如下:comm.and device_name argument</p><p
101、> LPTSTR lpszReturnString, //指向一個(gè)用于存儲MCI命令執(zhí)行后返回的//字符串信息的緩沖區(qū)</p><p> UINT cchReturn, //緩沖區(qū)大小</p><p> HANDLE hwndCallback </p><p> 第四章 系統(tǒng)總體設(shè)計(jì)</p><p> 4.
102、1 系統(tǒng)總體功能架構(gòu)</p><p> 4.1.1 系統(tǒng)功能模塊圖</p><p> 初步構(gòu)思系統(tǒng)的功能,根據(jù)播放器的需要,形成系統(tǒng)的功能模塊圖如圖4-1所示:</p><p> 圖4-1 系統(tǒng)功能模塊圖</p><p> 4.1.2 系統(tǒng)總體設(shè)計(jì)流程圖</p><p> 在已經(jīng)形成各功能模塊的基礎(chǔ)上,畫出
103、系統(tǒng)的總體設(shè)計(jì)的流程圖如圖4-2所示:</p><p> 在播放歌曲之前,先添加符合要求的歌曲文件或文件夾;</p><p> 接著在播放列表中打開已添加的欲播放的歌曲;</p><p> 正在播放的歌曲可以對其進(jìn)行暫停、上一首或下一首操作;</p><p> 為了聽覺效果,亦可對正在播放的歌曲進(jìn)行音量調(diào)節(jié);</p>&
104、lt;p> 對歌曲進(jìn)行快進(jìn)或后退可以通過滑動(dòng)條進(jìn)行控制。</p><p> 在播放歌曲的同時(shí),可以展開歌詞顯示列表添加LRC文件進(jìn)行歌詞顯示。</p><p> 一切正常播放的情況下,可以設(shè)置歌曲循環(huán)的模式隨機(jī)、順序或者單曲循環(huán)。</p><p> 歌曲列表和歌詞列表并非一成不變,可以設(shè)置為隱藏。</p><p> 播放模式下
105、可以暫停,已經(jīng)添加的列表中的歌曲亦可以刪除。</p><p> 播放操作進(jìn)行完畢可以選擇退出播放器。</p><p> 圖4-2 系統(tǒng)總體設(shè)計(jì)流程圖</p><p> 4.2 系統(tǒng)各功能模塊文字介紹</p><p> 4.2.1 文件加載</p><p> 文件加載,通俗的說為添加文件,在我的播放器星空旋律
106、中,文件加載包括加載一個(gè)文件或者文件夾,在播放前通過加載文件獲得需要播放的文件。此外,在我的播放器中,加載文件有兩種方式:一種是通過界面上的按鈕實(shí)現(xiàn)加載;另一種是通過菜單欄里面的添加文件選項(xiàng)實(shí)現(xiàn),加載的過程十人性化,通俗易懂。[20]</p><p> 4.2.2 播放操作</p><p> 播放模塊是內(nèi)容非常豐富的一個(gè)模塊,從功能的設(shè)計(jì)上還可以分為五個(gè)更小的模塊,分別為:1、播放控制
107、,播放、暫停、上一首、下一首、打開文件;2、音量控制,音量調(diào)大、調(diào)小、靜音;3、播放模式控制,隨機(jī)、循環(huán)、單曲;4、歌詞路徑設(shè)置,并且可以獲取當(dāng)前歌詞的存放路徑;5、退出、最大化、最小化??偟膩碚f,這是我的播放器的一個(gè)最基本的功能模塊。</p><p> 4.2.3 文件管理</p><p> 文件管理包括字面意義上的管理文件,包括添加文件、文件夾,刪除文件,設(shè)置文件屬性、重命名,這些
108、都是播放器層次上的一個(gè)基本的文件管理功能,此外,我的播放器還有一個(gè)文件管理的特色就是對星空旋律主題的設(shè)置,在我的播放器圖標(biāo)的右側(cè)隱藏了星空下最美妙的旋律,也即是對母校東南大學(xué)成賢學(xué)院的感謝!</p><p> 4.2.4 歌詞顯示</p><p> 歌詞顯示是思路較為清晰的一個(gè)模塊,在顯示歌詞之前必須先設(shè)置好歌詞的顯示路徑,然后在該路徑下存儲好當(dāng)前需要顯示的歌詞(LRC文件),一切準(zhǔn)備
109、就緒后,打開顯示歌詞的窗口就可以顯示歌詞了,還有一點(diǎn)需要注意的就是歌曲文件的名稱須和歌詞文件同名,這樣才能成功的顯示。</p><p><b> 4.3 界面設(shè)計(jì)</b></p><p> 4.3.1 界面設(shè)計(jì)的基本思想</p><p> 最初運(yùn)用MFC,建立對話框?yàn)榛究蚣?。因?yàn)楸拒浖且韵到y(tǒng)自帶的MCI命令為接口基礎(chǔ),所以為豐富本軟
110、件,將重點(diǎn)和難點(diǎn)放在了界面設(shè)計(jì)方面。</p><p> 4.3.2 基本界面設(shè)置</p><p> 在基本界面確定后,添加各類控件,形成基本界面如圖4-3所示:</p><p> 圖4-3 基本界面設(shè)計(jì)圖</p><p> 該圖按照從上至下,從左至右的順序功能依次為時(shí)間顯示、暫停、上一首、下一首、打開文件、最小化、關(guān)閉、退出、播放、隨
111、機(jī)模式、播放列表顯示、音量控制、歌詞的顯示、滑動(dòng)條控件、菜單的顯示部分控制。</p><p> 4.3.3 菜單的顯示設(shè)置</p><p> 設(shè)置菜單控制刪除播放列表、設(shè)置文件屬性的界面如圖4-4和4-5所示:</p><p> 圖4-4刪除播放列表菜單 </p><p> 圖4-5 文件屬性菜單</p>&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于vc平臺的mci媒體播放器開題報(bào)告
- 多媒體播放器論文
- vc課程設(shè)計(jì)--多媒體播放器
- 基于vc++的多媒體播放器設(shè)計(jì)與實(shí)現(xiàn)
- 多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文--基于linux下多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于linux下多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于linux下多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文(設(shè)計(jì))--基于android系統(tǒng)的多媒體播放器的開發(fā)-功能實(shí)現(xiàn)
- 基于android平臺的音樂播放器-畢業(yè)論文
- 畢業(yè)論文——基于android平臺的音樂播放器
- Android平臺媒體播放器的優(yōu)化與實(shí)現(xiàn).pdf
- 項(xiàng)目要求書_媒體播放器
- 06媒體播放器需求分析
- 基于Android平臺的流媒體播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)(論文)多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 基于安卓android系統(tǒng)的多媒體播放器的開發(fā)功能實(shí)現(xiàn)畢業(yè)論文
- 視頻監(jiān)控系統(tǒng)平臺中媒體播放器的設(shè)計(jì).pdf
- 媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于android手機(jī)平臺的音樂播放器-畢業(yè)論文
評論
0/150
提交評論