




已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
湖南大學畢業(yè)設計(論文) 第58頁HUNAN UNIVERSITY畢業(yè)設計(論文)設計論文題目: 音樂解碼技術研究與音樂播放 的實現(xiàn) 音頻解碼技術研究與音樂播放器實現(xiàn)摘要本文介紹研究音頻編碼解碼相關技術,并結合VC6.0編寫多媒體音樂播放器,利用軟件工程原理,采用面向?qū)ο蟮木幊谭椒?,其開發(fā)主要包括前臺窗體的設計和后臺源碼的實現(xiàn)兩個方面,實現(xiàn)了利用計算機進行多媒體音頻的播放.音樂播放器開發(fā)過程總共包含了六部分,通過系統(tǒng)分析,系統(tǒng)開發(fā)的方法,系統(tǒng)開發(fā)平臺介紹,概要的設計,系統(tǒng)的規(guī)劃和設計,系統(tǒng)設計,分別介紹了從分析到開發(fā)到系統(tǒng)的設計與測試的整個音樂播放器的生成過程。系統(tǒng)分析介紹了播放器的播放流程,開發(fā)背景發(fā)展前景,開發(fā)工具概要,開發(fā)系統(tǒng)的最低配置等。系統(tǒng)開發(fā)的方法介紹了音樂播放器的具體的開發(fā)方法和如何選擇的開發(fā)方法。系統(tǒng)開發(fā)平臺的介紹,具體介紹了VC6.0主要界面和使用方法,其中包括常用工具具體位置與使用方法和工作區(qū)的生成,項目的創(chuàng)建、項目中文件的添加刪除、項目的編譯、項目的測試等。后邊幾部分和附錄介紹了系統(tǒng)規(guī)劃與分析,應用程序主界面,數(shù)據(jù)庫的生成,代碼的編寫與功能的實現(xiàn),系統(tǒng)的編譯與運行,最終實現(xiàn)了音樂播放器的功能,能對歌曲音樂進行播放和控制。關鍵詞: 音頻解碼;軟件系統(tǒng); VC6.0; 音樂播放器; 開發(fā)平臺 項目工程; 資源文件.Research of the audio frequency decoding engineering and realize of the audio frequency player Abstract This article introduces the correlation technique of audio frequency code and decoding. Through writing the audio frequency player of the multimedia with VC6.0, utilize soft project principle, adopt facing target programming method, it develops to be mainly including the design of the body of window of the front desk and backstage supporters source code realization two respect, have realized utilizing the computer to carry on the broadcasting of audio frequency of multimedia. System this develop course include six chapter altogether, through network analysis, method that system develops, the introduction to the systematic developing platform, the design of outline, systematic planning and design, the system is designed, has introduced and turned into the course to the systematic design and whole audio frequency player of test from analyzing to developing separately. Chapter one introduces the procedure of broadcasting of the player, develop the development prospect of the background, the outline of the developing instrument, develop systematic disposing etc. the most low. And approach how to choose that chapter two has introduced player concrete development approach of audio frequency. Chapter three is the introduction to the systematic developing platform, introduce VC6.0 main interface and operation method specifically, including the formulation of concrete position of daily tool and operation method and workspace, establishment, project Chinese piece of project add deletion, compiling test of event of event etc. Odd chapter and appendix recommend system plan and analyze application program live in interface finally, the formulation of the database , the code one writes and the realization of the function, the systematic one compile and is issued, realize the function of the player of the audio frequency finally, can broadcast and control the song music . Keywords: Audio frequency decoding; The software system; VC6.0 ; audio frequency broadcast; Develops the even project; Project; resources document. 目錄1 緒論11.1 課題的來源11.2 選題的背景及目的21.2.1 音頻編解碼發(fā)展歷史21.2.2 音頻編解碼過程31.2.3 選題的目的61.3 系統(tǒng)主要實現(xiàn)內(nèi)容與實現(xiàn)方式61.3.1 系統(tǒng)主要實現(xiàn)內(nèi)容61.3.2 系統(tǒng)的開發(fā)方法71.3.3系統(tǒng)的開發(fā)平臺92 系統(tǒng)的分析102.1 系統(tǒng)的可行性分析102.1.1 經(jīng)濟可行性分析102.1.2 操作可行性分析102.1.3 技術可行性分析102.2 系統(tǒng)功能分析113 系統(tǒng)設計133.1 系統(tǒng)概要設計133.2 系統(tǒng)功能模塊設計193.2.1 加入文件203.2.2 加入目錄203.2.3 歌曲列表203.2.4 歌曲控制223.2.5 音量設置223.2.6 靜音設置233.2.8 滾動字幕233.3 系統(tǒng)運行環(huán)境254 系統(tǒng)實現(xiàn)264.1 系統(tǒng)的編譯和發(fā)行264.2 系統(tǒng)運行284.3 系統(tǒng)功能界面284.3.1 加入文件功能實現(xiàn)284.3.2 加入目錄304.3.3 歌曲列表功能實現(xiàn)324.3.4 歌曲控制功能實現(xiàn)344.3.5 音量控制功能實現(xiàn)354.3.6 靜音設置功能實現(xiàn)364.3.7 M3U功能實現(xiàn)384.3.8 滾動字幕功能實現(xiàn)39致謝41參考文獻42附錄43湖南大學軟件學院1 緒論1.1 課題的來源語音時語言的聲學表現(xiàn),是人類交流信息最自然、最有效、最直接的手段,也是人類進行思維的一種依托。隨著社會的不斷進步,人們的生活水平也在不斷的提高,從而對精神生活提出了新的要求。音樂一直以來就是人們?nèi)粘P蓍e的必要調(diào)劑品,它可以陶冶人的情操,極大的豐富了人們的精神生活。那么一首首動聽的音樂又是如何播放出來的呢?這就要通過形式多樣的合成手段了,即當播放多媒體文件時,計算機將指令發(fā)給聲卡,聲卡按照指令將媒體播放信息重新合成起來。所以,多媒體的播放效果取決于用戶設備的質(zhì)量和音色。就電腦聲卡而言,最為常見的手段是fm合成與波表合成。前者多用于以前的isa聲卡,fm是“頻率調(diào)變”的英文縮寫,它運用聲音振蕩的原理對MIDI進行合成處理。但由于技術本身的局限,加上這類聲卡或顯卡用的大多數(shù)為廉價的芯片,效果自然差勁;而波表和視頻合成所帶來的效果要遠遠超過fm,而且在電腦上已被廣泛運用,各類波表,聲卡、顯卡,以及解碼軟件層出不窮。圖1.1 多媒體播放流程圖由輸出設備播放聲卡/顯卡合成信息計算機指令MIDI然而,在音頻壓縮出現(xiàn)之前,存儲高質(zhì)量的數(shù)字音頻數(shù)據(jù)往往需要占用大量的硬盤空間以及通道帶寬。假設一首普通的歌曲時間為一分鐘,要想達到CD音質(zhì),至少需要大約10MB的存儲空間,可以想象,如果要從Internet上下載這首歌,使用一個普通的28.8Kbit/s的Modem,不算傳輸開支和網(wǎng)絡不暢,理論上將會用至少49分鐘。同時,如果是要在電腦上欣賞音樂,也會極大的降低磁盤占用空間,這明顯是不可接受的。所以,音樂的存儲就成了一個問題。為了使人們能夠更方便,更直接的欣賞音樂,就必須要降低磁盤占用空間??梢允褂脙煞N方法達到目的,降低采樣指標或者壓縮。降低指標不可取,因此只能通過各種壓縮方法進行壓縮。音頻壓縮需要編碼,自然,播放此音頻文件則需要解碼。編碼,解碼的不同,導致音頻在經(jīng)過處理后得到的音質(zhì)也不盡相同,而好的音質(zhì)能夠更好的滿足人們的聽覺享受。所以,對各種音頻文件進行解碼的技術研究就很有必要了。本課題就是對音頻解碼技術進行相關研究,并設計出一款屬于自己的音樂播放器軟件。1.2 選題的背景及目的 1.2.1 音頻編解碼發(fā)展歷史音頻壓縮技術的發(fā)展最初是從才能夠無損壓縮開始的。20世紀70年代初,開始采用類似的瞬時壓縮技術和塊壓擴(Block-Compressing)技術。這種技術的編碼率較低。20世紀80年代,隨著數(shù)字信號處理技術的發(fā)展,出現(xiàn)了從音質(zhì)尚可到音質(zhì)卓越的一系列頻域編碼算法。20世紀80年代末至90年代初涌現(xiàn)的編碼算法普遍采用了一種高效率編碼技術,即利用人耳的掩蔽效應和臨界頻帶等特性來進行子帶編碼和變換編碼,其中有MUSICAM系統(tǒng)、128kbit/s的AC-2編碼器、AC-3系統(tǒng)、ASPEC和SB-ADPCM編碼算法等。20世紀90年代至今,有損音頻編碼把音頻數(shù)據(jù)的壓縮率提高到了12:1。付出的代價是音質(zhì)的下降。比較著名的是MP3、AAC高級音頻編碼、RM等。同時,能給最終用戶提供最佳的聽覺體驗的無損壓縮技術也取得了新的突破。Meridian無損壓縮(MLP)是一種應用所有權技術的音頻編解碼計劃,它能傳送多聲道環(huán)繞聲,并以可能的最高動態(tài)范圍和更高的取樣頻率來確保任何聲音細節(jié)都表現(xiàn)完美。音頻解碼和音頻編碼是共生的,音頻編碼的發(fā)展歷史其實也就是音頻解碼技術不斷進步的真實寫照。1.2.2 音頻編解碼過程當前數(shù)字音頻編碼領域存在著不同的編碼方案和實現(xiàn)方式,但基本的編碼思路大同小異,對每一個音頻聲道中的PCM音頻信號,首先都要將它們映射到頻域中,這種時域到頻域的映射可通過子帶濾波器或通過變換濾波器組實現(xiàn)。這兩種方式的最大不同之處在于濾波器組中的頻率分辨率不同。每個聲道中的音頻采樣塊首先要根據(jù)心里聲學模型來計算掩蔽門限值,然后由計算出的掩蔽門限值決定,從公共比特池中分配給該聲道的不同頻率域中多少比特數(shù),或由計算出的掩蔽門限值來決定哪些頻率范圍內(nèi)的量化噪聲可引入而不需要去除。最后將控制參數(shù)及輔助數(shù)據(jù)進行交織產(chǎn)生編碼后的數(shù)據(jù)流。解碼過程則首先將編碼后的數(shù)據(jù)流進行解碼復用,然后通過比特流中傳輸?shù)目刂茀?shù)對音頻數(shù)據(jù)反量化,或通過心里聲學模型參數(shù)反向運算得到音頻信號,最后得到的音頻信號由頻域反變換到時域,完成解碼過程。當前常見的音頻編碼系統(tǒng)主要有G.7xx、MPEG伴音系列和杜比音像系統(tǒng)。CCITT最初定義的音頻編碼算法建議標準包括G.711、G.721、G.723等。1995年,ITU-T批準了新的語音壓縮標準G.729.該標準采用共軛結構代數(shù)碼激勵線性預測(CS-ACELP),可以僅用8kbit/s的帶寬傳輸話音,而話音質(zhì)量與32kbit/s的ADPCM相同,它被用于IP-phone技術中。G.711是現(xiàn)在使用最普遍的編碼技術,它是目前全世界電路交換電話網(wǎng)中使用的編碼技術。而在ADPCM上最主要的標準就是G.726,我們就以G.726 ADPCM編碼系統(tǒng)為例來了解一下編碼解碼的過程。編碼過程:圖1.2 編碼原理流程圖Encoder輸入14bitPCM信號s1 ACCUM調(diào)用predictor_pole()函數(shù),從6階零點預測器計算出預測信號-sezi調(diào)用predictor_pole()函數(shù),從二階極點預測器計算出預測信號-sezi,與sez計算出預測信號-se求出差分信號sl-se-d SUBTA調(diào)用step_size()函數(shù),計算出量化器的標度因子y MIX調(diào)用quantize()函數(shù),量化得出ADPCM形式編碼的信號-i調(diào)用reconstruct()函數(shù),根據(jù)y,生成的ADPCM編碼信號i還原得到量化差分信號dq根據(jù)dq,預測信號se得到重建信號sr ADDA計算出預測器差分信號sr+sez-se-dqsez ADDC調(diào)用update()函數(shù),調(diào)整輸出編碼的每個狀態(tài)變量返回編碼后的信號值idecoder()解碼函數(shù)。decoder()解碼函數(shù)主要由ACCUM方框、MIX方框、ADDB方框、ADDC方框4個功能子方框組合完成。g723-24-decoder()、g721decoder()、g723-40-decoder()用于完成24、32、40kbit/s ADPCM解碼原理。首先讀入k時刻ADPCM輸入信號i,用k-1時刻量化差分信號dq和重建信號sr,調(diào)用predictor-zero()函數(shù)和predictor_pole()函數(shù)完成自適應預測器功能,預測出K時刻信號估算值se。在量化前,調(diào)用step_size()函數(shù)計算出量化器標度因子Y,使反向量化器能適應語音和數(shù)據(jù)等具有不同統(tǒng)計特性以及不同幅度的輸入信號。調(diào)用reconstruct()函數(shù),使用ADPCM代碼i和量化器標度因子Y完成反向自適應量化器功能,產(chǎn)生量化差分信號dq,進一步得到重建信號sr,為計算出k+1時刻預測值se做準備。調(diào)用update()函數(shù),更新反向量化器快、慢標度因子和二、六階預測器系數(shù)等,完成量化器標度因子自適應、自適應速度控制、音調(diào)和轉(zhuǎn)移檢測器功能。解碼過程: 圖1.3 解碼原理流程圖Decoder屏蔽得到正確的代碼值i調(diào)用predictor_zero()函數(shù),從六階零點預測器計算預測信號-sezi調(diào)用predictor()函數(shù),從二階極點預測器得出預測信號,與sezi計算出預測信號-se調(diào)用step_size()函數(shù),計算量化器標度因子y調(diào)用reconstruct()函數(shù),根據(jù)量化階y生成的ADPCM信號i還原得到量化差分信號dq根據(jù)dq預測信號se得到重建信號sr計算出預測器差分信號sr+sez-se-dqsez調(diào)用upadate()函數(shù),調(diào)整輸出編碼的每個狀態(tài)變量將線性PCM信號輸出1.2.3 選題的目的人類進入信息化時代以來,網(wǎng)絡的長足發(fā)展和廣泛的普及,使得人們能夠更快,更方便的欣賞音樂。在個人PC上,一款音樂播放器在手,聽盡世間音樂。而一款好的音樂播放器,能幫助人們更好的去欣賞音樂?,F(xiàn)今網(wǎng)絡上有許多優(yōu)秀的音樂播放器,如千千靜聽等,他們內(nèi)置了相當多的音頻解碼器,能夠播放各種格式的音頻文件。能編寫屬于自己的一款音樂播放器無疑是一件有趣的事情,但首先得了解音樂播放器是怎么實現(xiàn)對各種音頻格式文件進行播放的,如何實現(xiàn)播放器上許多方便快捷的功能。帶著這個目的,我選擇了此課題。而對音頻解碼進行技術研究有助于了解其內(nèi)在的原理,能夠幫助我們更好的設計出一款屬于自己的音樂播放器。1.3 系統(tǒng)主要實現(xiàn)內(nèi)容與實現(xiàn)方式1.3.1 系統(tǒng)主要實現(xiàn)內(nèi)容通過對音頻編碼解碼技術的相關研究,了解音頻編碼解碼的原理以及過程,從而設計出一款能夠播放多音頻格式的音樂播放器。這款音樂播放器實現(xiàn)的相關內(nèi)容如下:q 美觀、時尚的操作界面。q 界面上添加時鐘。q 滾動顯示正在播放的歌曲及其長度信息。q 歌曲控制方式要多樣化。q 顯示歌曲的播放進度。q MP3文件的添加方式多樣化,并且要將其添加到歌曲列表中。q 實現(xiàn)靜音和音量的控制。q 能顯示MP3文件的相關信息,如歌手、專輯等。q 用戶可以自定義滾動信息的方式。1.3.2 系統(tǒng)的開發(fā)方法建立一個信息系統(tǒng),是一項復雜的軟件工程的實施。近30多年來,軟件工程發(fā)展成為新科學,至今已經(jīng)成為IT產(chǎn)業(yè)的重要支柱。一開始,人們往往使用手工作坊式的軟件開發(fā)方法,靠個人的力量編寫各種小型程序;但是隨著計算機硬件技術的飛速發(fā)展,計算機軟件在各個領域中的作用日益突出,那種多年來被人們沿用的手工作坊式的開發(fā)方法,已經(jīng)在軟件產(chǎn)品的質(zhì)量、成本及開發(fā)時間等方面無法滿足需求。結構化生命周期法是一種傳統(tǒng)的管理信息系統(tǒng)開發(fā)方法,其基本思想是把整個系統(tǒng)開發(fā)過程分成若干個階段,每個階段進行若干活動,每項活動應用一系列標準、規(guī)范、方法和技術,完成一個或多個任務,形成符合給定規(guī)范的產(chǎn)品。采用結構化生命周期法開發(fā)管理信息系統(tǒng)時,應遵循的主要原則:(1) 用戶參與的原則(2) “先邏輯后物理”的原則(3) “自頂向下”的原則(4) 工作成果描述(主要指文檔)標準化的原則其具體開發(fā)步驟可分為以下四步:(1) 系統(tǒng)規(guī)劃(2) 系統(tǒng)開發(fā)q 系統(tǒng)分析系統(tǒng)初步調(diào)查系統(tǒng)可行性研究現(xiàn)行系統(tǒng)的詳細調(diào)查新系統(tǒng)邏輯方案的提出q 系統(tǒng)設計系統(tǒng)總體結構設計系統(tǒng)總體功能設計系統(tǒng)總體物理結構設計系統(tǒng)詳細設計數(shù)據(jù)庫設計代碼設計輸入輸出設計q 系統(tǒng)實施程序設計系統(tǒng)測試(3) 系統(tǒng)的運行及維護(4) 系統(tǒng)評價 快速原型法是80年代發(fā)展起來的,旨在縮短開發(fā)周期,提高開發(fā)效率和用戶對系統(tǒng)的滿意程度。其基本思想是在系統(tǒng)開發(fā)的初期,盡快構造出系統(tǒng)的原型,使用戶能及早地運行這個系統(tǒng)原型,通過使用它、熟悉它,受到啟發(fā)并取得經(jīng)驗,然后對系統(tǒng)的目標和功能提出更精確、具體的要求,研制人員據(jù)此逐漸修改和完善原型,使它滿足用戶的需求,最后完成系統(tǒng)的開發(fā)。該方法大大提高了系統(tǒng)開發(fā)效率,彌補了結構化生命周期法開發(fā)時間長的缺陷。通常采用原型法需以下四個階段:(1) 明確用戶的基本要求(2) 研制系統(tǒng)的原型(3) 使用、評價系統(tǒng)原型(4) 修改和完善原型1.3.3系統(tǒng)的開發(fā)平臺眾所周知,VC6.0 是功能非常強大的多媒體開發(fā)工具,它有豐富的函數(shù)和方法處理各種各樣的多媒體信息,能夠很靈活的操作圖形、聲音、動畫、影像等多媒體素材。但有時我們使用Visual C+開發(fā)非多媒體應用程序,并不需要在應用程序中大量的使用聲音,而只是需要在特定的場合出現(xiàn)。如Windows的警告聲。這就要求程序員在恰當?shù)沫h(huán)境中恰當?shù)氖褂寐曇粑募炔皇C在多媒體方面的特長,又能夠為應用程序增加吸引人的效果。本音樂播放器系統(tǒng)就是在Visual C+6.0平臺環(huán)境下編寫設計而成的。2 系統(tǒng)的分析2.1 系統(tǒng)的可行性分析 2.1.1 經(jīng)濟可行性分析本系統(tǒng)開發(fā)簡單但要耗去一定的時間,所用的開發(fā)工具和軟件都差不多是免費的。由此可見在,開發(fā)此系統(tǒng)在經(jīng)濟上是完全可行的。 2.1.2 操作可行性分析如今的計算機已經(jīng)走進千家萬戶,硬件成本的下降,導致計算機購買成本的降低.我的這套系統(tǒng)是利用自己的計算機加微軟的集成開發(fā)環(huán)境Microsoft Visual C+6.0作為軟件的開發(fā)平臺,使開發(fā)出來的系統(tǒng)有友好的用戶界面、有良好的安全性設置、有詳細的操作說明書,這樣更使各類用戶很快地掌握系統(tǒng)的使用方法,操作友好因此在操作上是可行的. 2.1.3 技術可行性分析從目前IT業(yè)界比較流行的數(shù)據(jù)庫開發(fā)、管理軟件來看,對于比較簡單的中小型數(shù)據(jù)庫,VC 和Windows 系列操作系統(tǒng)的結合無疑是在實際應用中較為成功的一種解決方案。為用戶提供了業(yè)界軟件開發(fā)一直堅持的非常友好、操作簡單的用戶界面、完善強大的數(shù)據(jù)庫操作功能和簡潔明了的數(shù)據(jù)庫接口。所以技術實行起來相對會容易。2.2 系統(tǒng)功能分析基于音樂播放器所要實現(xiàn)的內(nèi)容,我們列出用戶操作的模塊,其中每個模塊對應一個功能。圖2.1 UML用例圖 加入文件加入目錄M3U歌曲控制靜音設置音量設置歌曲列表滾動字幕 注:圖中的“M3U”是音樂播放器音頻文件的播放列表本系統(tǒng)的設計思想:q 在程序主界面上添加位圖時鐘,顯示操作系統(tǒng)的當前時間。q 采用滑塊和倒計時的方式顯示歌曲的播放進度。q 采用橫向滾動的方式動態(tài)顯示當前正在播放的歌曲及其長度。q 采取兩種方式添加MP3歌曲,即加入文件和加入目錄。加入的MP3歌曲顯示在歌曲列表中。q 采用伸縮對話框的方式顯示和隱藏歌曲列表。q 設置5種滾動模式來顯示當前正在播放的歌曲。即無模式、左滾動(完全消失才重現(xiàn))、右滾動(只滾動一次)、左右來回滾動和左滾動(還剩1/3就重現(xiàn))。q 歌曲控制采用10方式。即打開/播放、暫停、停止、上一首、后退5秒、前進5秒、下一首、重復播放、隨機播放和循環(huán)播放。q 調(diào)用WindowsAPI函數(shù)實現(xiàn)音量控制。q 除了操作主界面上的按鈕,還可以通過彈出式菜單來實現(xiàn)歌曲控制和滾動模式的設定。q 本系統(tǒng)使用系統(tǒng)托盤技術,使得應用程序可以以圖標的方式運行。根據(jù)開發(fā)思想,確定了系統(tǒng)的功能。本系統(tǒng)需要完成的功能如下:q 創(chuàng)建時鐘,顯示當前操作系統(tǒng)的時間。q 向系統(tǒng)中添加文件或目錄。q 將添加的MP3文件顯示到歌曲列表中。q 編輯MP3文件的信息。q 創(chuàng)建、打開、保存和關閉M3U列表。q 歌曲控制、包括打開/播放、暫停、停止、上一首、下一首、循環(huán)播放等。q 靜音設置。q 音量設置。q 滾動顯示正在播放的歌曲名和歌曲的長度。q 顯示歌曲的播放進度。3 系統(tǒng)設計3.1 系統(tǒng)概要設計(1) 準備工作要開發(fā)一個軟件,首先必須搞清楚這個軟件有什么功能、需要用到哪些組件、輸出的內(nèi)容和方法等,畫出結構流程圖,然后為這些組件建立一個目錄框架,把開發(fā)過程中創(chuàng)建的文件和需要用到的文件都保存到這個目錄中,如新建一個文件夾,命名為 客戶管理系統(tǒng),其中存放對話框,DATA,存放數(shù)據(jù)文件,這樣文件結構清晰,以便于組織和管理。(2) 對于創(chuàng)建的每個Visual C+應用程序來說,Visual Studio使用一個項目工作區(qū)來存儲該項目所需的所有文件,其中“項目工作區(qū)”(project workspace)或稱為“工作區(qū)”(workspace)就是一個文件夾,與項目相關的文件存儲在該文件夾下.而一個項目又由一定數(shù)量的文件組成,如果要生成一個可執(zhí)行程序,其中一個文件還必須是源代碼,而這些文件通常都存儲在同一工作區(qū)文件夾中.我們用Visual Studio選擇一個項目類型,創(chuàng)建一個新的C+應用程序首先從菜單單欄中選擇File項打開如圖4-1所示的File子菜單,從這個子菜單中選擇New選項,打開如圖3.1 New對話框.圖3.1 File子菜單圖3.2 New對話框在3.2所示的New對話框中選Win32 Application項目類型(如果不小心選擇了別的項目類型,在下一個出現(xiàn)的習莫中選擇Cancel)(3) 當開始一個新項目里首先確保Projects選項卡處于活動狀態(tài),并在Projects選項卡中,你必須指定三項內(nèi)容.第一項是選擇項目類型.第二項是項目名稱.項目名稱必須在Project Name文件框中輸入.特別的,為新的項目創(chuàng)建了一個新的文件夾,對于這種情形,文件夾名稱為pgm1_1.這是必須提供的第三項.一旦為圖3.2中的對話框提供了所需的信息并單擊OK命令按鈕就出現(xiàn)如圖3.3所示的對話框單擊OK按鈕,則會發(fā)生兩個事件.第一個事件是自動創(chuàng)建一定數(shù)量的文件產(chǎn)將這些文件放置在新項目的工作我文件夾中,隨后IDE變成如圖3.3所示的樣子,特別要留意Workspace窗口,顯示了關于當前工作中所有項目的一個分層式列表,并顯示每個項目中所包含的全部項:圖3.3 含一個活動工作區(qū)的IDE窗口(4) 創(chuàng)建數(shù)據(jù)庫:因為數(shù)據(jù)庫應用程序在很大程度上依賴于所管理的數(shù)據(jù),所以最好從數(shù)據(jù)入手進行應用程序的設計。在設計用戶界面和用于管理數(shù)據(jù)的組件之前,應首先創(chuàng)建和設置數(shù)據(jù)庫,并確定表之間的關系以及所希望的事務規(guī)則等信息。在可靠的數(shù)據(jù)庫基礎上,開發(fā)工作會容易很多。(5) 設計用戶操作界面(Dialog對話框):界面直接表現(xiàn)一個應用程序的功能。Visual C+6.0的設計工具使得創(chuàng)建富有吸引力,并且功能豐富的界面成為軟件開發(fā)中一件愉快的事情.用戶界面主要包括Dialog對話框,工具欄和菜單,它們可以將應用程序的所有功能與界面中的控件或菜單命令聯(lián)系起來。(6) 設計訪問信息的方法:開發(fā)人員往往想在表單上為用戶顯示一些信息,或者也想給用戶提供一些方便,以準確地給出他們所需的內(nèi)容,留給他們自己選擇的余地。(7) 測試與調(diào)試:這是開發(fā)人員在開發(fā)工作過程中經(jīng)常要做的事。其目的就是要盡早發(fā)現(xiàn)源程序中可能存在的錯誤,并加以解決。隨著開發(fā)工作的深入,不斷地進行軟件測試和調(diào)試,可以避免給后續(xù)工作帶來更大的麻煩。假設創(chuàng)建了一個表單,那么在處理應用程序的其他部分之前,最好檢查一下表單能否完成預定的功能,只有調(diào)試過后并且不存在錯誤后才允許付諸使用。工作區(qū)文件夾提供文件類型描述:表3.1 文件類型描述文件擴展名描述.dsw項目工作區(qū)文件,用來在工作區(qū)級別上存儲信息,例如存儲在工作區(qū)中的項目的數(shù)量.點擊該文件會打開完整的項目.dsp一個項目文件,描述一個項目可執(zhí)行版本如何建立,這相當于早期版本中的Visual C+中使用的護展名為.msk的makefile文件.opt工作區(qū)選項文件,用來存儲項目工作區(qū)的設置,該文件含有局部設定,例如用硬件配置設定的工作區(qū)外部特征.一旦打開了一個工作區(qū)而又沒有找到工作區(qū)選項文件,將自動創(chuàng)建一個新的工作區(qū)選項文件.根據(jù)系統(tǒng)分析可知,本系統(tǒng)是具有用戶操作界面的應用程序,下面就創(chuàng)建一個基于對話框的應用程序,工程的創(chuàng)建步驟如下:第一步:進入到Visual C+集成開發(fā)環(huán)境中,選擇“文件” “新建”菜單,打開“工程”選項卡,單擊MFC AppWizard(exe),指定項目名為TopMp3Player。單擊“確定”按鈕進入到下個界面。第二步:選擇“基本對話框”選項,如圖3.4所示。圖3.4 應用向?qū)У谌剑航酉聛淼牟襟E是連續(xù)單擊“下一步”按鈕,在最后一個畫面單擊“完成”按鈕,至此就完成了應用程序框架的創(chuàng)建。第四步:刪除對話框上由MFCAppWizard生成的控件,重新添加25個控件,如圖3.5所示。圖3.5 播放器對話框及相關控件音樂播放器對話框上的25個控件的屬性如表3.2所示。表3.2 播放器界面各控件以及描述控件ID描述IDC_STATIC_COOL_CLOCK靜態(tài)文本控件,用來顯示位圖時鐘IDC_STATIC_PLAY_TIME靜態(tài)文本控件,用來顯示時間IDC_STATIC_ROLL_INFO靜態(tài)文本控件,用來顯示滾動信息IDC_CHECK_MIN_WND復選按鈕控件,單擊它用來最小化窗口IDC_CHECK_CLOSE_WND復選按鈕控件,單擊它用來推出系統(tǒng)IDC_STATIC_MP3_PICPicture控件,用來顯示圖標IDC_STATIC_SUPER_MP3靜態(tài)文本控件,用來顯示“音樂播放器”IDC_SLIDER滑塊控件,用來顯示當前播放的進度IDC_CHECK_PLAY復選按鈕控件,單擊它用來播放歌曲IDC_CHECK_PAUSE復選按鈕控件,單擊它用來暫停播放歌曲IDC_CHECK_STOP復選按鈕控件,單擊它用來停止播放歌曲IDC_CHECK_PREV_SONG復選按鈕控件,單擊它用來播放上一首歌曲IDC_CHECK_BACK_FIVE_SECOND 復選按鈕控件,單擊它用來向后5秒播放歌曲IDC_CHECK_AHEAD_FIVE_SECOND復選按鈕控件,單擊它用來向前5秒播放歌曲IDC_CHECK_NEXT_SONG復選按鈕控件,單擊它用來播放下一首歌曲IDC_CHECK_REPEAT_PLAY復選按鈕控件,單擊它用來重復播放歌曲IDC_CHECK_RANDOM_PLAY復選按鈕控件,單擊它用來隨即播放歌曲IDC_CHECK_LOOP_PLAY復選按鈕控件,單擊它用來循環(huán)播放歌曲IDC_CHECK_MUTE復選框控件,單擊它用來設置靜音IDC_CHECK_VOLUME復選框控件,單擊它用來設置音量IDC_CHECK_LIST_SONG復選框控件,單擊它用來顯示歌曲列表控件ID描述IDC_CHECK_SET_SONG復選框控件,單擊它用來設定歌曲IDC_STATIC_TEMP靜態(tài)文本控件,用來實現(xiàn)對話框的伸縮IDC_STATIC_SONG_LISTGroup Box控件,用來顯示“歌曲列表IDC_SONG_LIST列表控件,用來顯示加入的MP3文件3.2 系統(tǒng)功能模塊設計在系統(tǒng)功能分析的基礎上,生成如圖2.2所示的系統(tǒng)功能模塊圖。 圖3.6 系統(tǒng)功能模塊圖 音樂播放器加入目錄加入文件M3U歌曲控制靜音設置音量設置歌曲列表滾動字幕3.2.1 加入文件音樂的潮流步伐是快速的,我們常常需要向音樂播放器中添加時下最新的歌曲,以便能夠及時欣賞。此功能模塊能夠選擇電腦中或者從網(wǎng)絡上已下載的最新的歌曲,將之加入播放器的播放列表,同時更新播放列表。然后,就能開始欣賞最新的音樂了。3.2.2 加入目錄我們可能將許多歌曲放在電腦中一個目錄下面,如果要一首一首的向播放器中添加歌曲,顯然是很麻煩的。此功能模塊實現(xiàn)加入一個目錄下面所有需要進行播放的歌曲,同時更新播放器播放列表。3.2.3 歌曲列表我們聽歌曲時,有時候想知道歌曲的相關信息,播放器的歌曲列表實現(xiàn)了此功能。歌曲列表,此功能模塊實現(xiàn)通過一個對話框顯示歌曲的相關信息并可以進行編輯,保存,刪除。圖3.7 “文件信息”對話框“文件信息”對話框上的17個控件的屬性如表所示:表3.3 文件信息對話框各控件及其屬性控件ID描述IDC_STATIC_SONG_PATH靜態(tài)文本控件,用來顯示“歌曲路徑:”IDC_EDIT_SONG_PATH編輯框控件,用來輸入歌曲路徑IDC_STATIC_FILE_INFOGroup Box控件,用來顯示“文件信息”IDC_STATIC_TITLE靜態(tài)文本控件,用來顯示“標題”IDC_EDIT_TITLE編輯框控件,用來輸入標題IDC_STATIC_ARTIST靜態(tài)文本控件,用來顯示“藝術家”IDC_EDIT_ARTIST編輯框控件,用來輸入藝術家IDC_STATIC_ALBUM靜態(tài)文本控件,用來顯示“專輯”IDC_EDIT_ALBUM編輯框控件,用來輸入專輯IDC_STATIC_YEAR靜態(tài)文本控件,用來顯示“年份”IDC_EDIT_YEAR編輯框控件,用來輸入年份IDC_STATIC_COMMENT靜態(tài)文本控件,用來顯示“注釋”IDC_EDIT_COMMENT編輯框控件,用來輸入注釋IDC_STATIC_GENRE靜態(tài)文本控件,用來顯示“流派”IDC_EDIT_GENRE編輯框控件,用來輸入流派IDC_BUTTON_SAVE按鈕控件,單擊它用來保存歌曲文件信息IDC_BUTTON_DELETE按鈕控件,單擊它用來刪除歌曲文件信息3.2.4 歌曲控制我們聽音樂時,不免需要對歌曲進行,聽到一首好聽的歌曲,可以讓它循環(huán)播放,不喜歡聽,可以切換下一首。歌曲控制,此功能模塊實現(xiàn)對歌曲進行打開/播放、暫停、停止、上一首、下一首、循環(huán)播放等控制。3.2.5 音量設置欣賞音樂時,不同的時間,不同的歌曲,不同的氣氛,都對音量的要求是不同的。音量設置,就可以對當前正在播放的歌曲調(diào)節(jié)播放音量的大小,方便快捷的享受音樂帶來的感動。3.2.6 靜音設置當聽音樂時,有時有緊急事情需要處理,比如打電話,需要一個相對安靜的當前環(huán)境。當然,你可以將音量調(diào)到最小,不過,更便捷的方法是直接就行對當前播放歌曲的靜音。靜音設置,此功能模塊實現(xiàn)對當前正在播放的歌曲直接進行靜音。3.2.7 M3U每次聽音樂如果都要從電腦目錄中選擇需要播放的音樂是很麻煩的,播放列表可以幫助解決這個問題。有時候舊的播放列表不需要了,或者需要希望新建一個播放列表,就需要用到M3U了。M3U,即音樂播放器音樂文件的播放列表。此功能模塊實現(xiàn)對歌曲列表的新建/打開/關閉/保存。3.2.8 滾動字幕音樂播放器上的附加功能,當沒有音樂播放時,向用戶提供開發(fā)者的相關信息,當播放音樂時,滾動顯示當下所聽歌曲信息。此功能模塊設置5種滾動模式來顯示當前正在播放的歌曲。即無模式,左滾動(完全消失才重現(xiàn))、右滾動(只滾動一次)、左右來回滾動和左滾動(還剩1/3就重現(xiàn))。滾動標題具體實現(xiàn):創(chuàng)建“滾動標題對話框,在對話框上添加9個控件,如圖所示。圖3.8 滾動標題“滾動標題“對話框上的9個控件的屬性如表所示。表3.4 “滾動標題”對話框各控件及其屬性控件ID描述IDC_STATIC_TITLE靜態(tài)文本控件,用來顯示滾動的標題IDC_STATIC_ROLL_MODEGroup Box控件,用來顯示“滾動模式”IDC_RADIO_NONE_MODE單選按鈕控件,單擊它用來取消滾動控件IDC_RADIO_LEFT_ROLL_MODE單選按鈕控件,單擊它用來設定向左滾動模式IDC_RADIO_RIGHT_ROLL_MODE單選按鈕控件,單擊它用來設定向右滾動模式IDC_RADIO_LEFT_RIGHT_ROLL單選按鈕控件,單擊它用來設定左右滾動模式IDC_RADIO_LEFT_ROLL_ONE_THIRD單選按鈕控件,單擊它用來設定向左滾動1/3模式IDC_BUTTON_CONFIRM按鈕控件,單擊它用來確定滾動模式IDC_BUTTON_CANCEL按鈕控件,單擊它用來推出本窗口表3.43.3 系統(tǒng)運行環(huán)境 硬件平臺: AMD Athlon(tm)64 X2 Dual Core processor 4000+ 2.11 GHz 1GB內(nèi)存 160GB硬盤 軟件平臺:操作系統(tǒng):Windows XP 開發(fā)工具:Microsoft Visual C+ 6.04 系統(tǒng)實現(xiàn)4.1 系統(tǒng)的編譯和發(fā)行資源文件(就是以應用程序名和擴展名是.rc的文件)很大程度上決定了應用程序的用戶界面。在VC+中資源文件包括以下內(nèi)容: Accelerator /模擬菜單和工具欄選擇的鍵盤定義 Dialog /對話框的布局及內(nèi)容 Icon /圖標有兩種一種是16X16一種是32X32。 Menu /應用程序的主菜單及所屬的彈出式菜單 String table /一些字符串,不屬于C+源代碼部分 Toolbar /工具條。 Version /程序的描述、版本號、支持語言信息。 除了以上信息,.rc文件還包含了以下語句: #include afxres.h #include afxres.rc 它們的作用是把適合于所有應用程序的一些通用MFC庫資源包含進來,其中包括字符串、圖形按鈕以及打印所需的一些元素。 關于資源編輯器的使用就不多說了,因為它的操作很簡單,需要注意的是雖然resource.h是一個ASCII碼文件可以用文本編輯器進行編輯,但如果使用文本編輯器進行編輯的話,下次再使用資源編輯器時所做的修改有可能丟失,所以我們應該在盡量在資源編輯器中編輯應用程序的資源,新增的資源內(nèi)容回自動的添加在我們的程序相應位置,例如resource.h而不用我們操心。 編譯在VC+中有兩種模式,一種是Release Build另一種是Debug Build。它們之間的區(qū)別在于,Release Build不對源代碼進行調(diào)試,不考慮MFC的診斷宏,使用的是MFC Release庫,編譯十對應用程序的速度進行優(yōu)化,而Debug Build則正好相反,它允許對源代碼進行調(diào)試,可以定義和使用MFC的診斷宏,采用MFC Debug庫,對速度沒有優(yōu)化。所以我們應該在Debug模式下開發(fā)應用程序,然后在Release模式下發(fā)布應用程序。在我們的工程文件夾下會有一個Debug文件夾和一個Release文件夾分別存放輸出文件和中間文件。 診斷宏是我們編譯程序時檢測程序狀態(tài)的有利工具,例如上兩篇用到的TRACE宏,可以在Debug窗口獲得你需要的診斷信息,而不用設置對話框之類的方法,在發(fā)布時Release會自動濾掉此信息。下面介紹如何完成本系統(tǒng)的編譯。在Visual C+集成開發(fā)環(huán)境中,用鼠標點擊菜單“組建” “移除工程配置”,在“移除工程配置”對話框中選擇TopMp3Player-Win32 Debug項,如圖所示。然后單擊“確定”按鈕,進行項目編譯,最后在本系統(tǒng)的Debug目錄下會生成可執(zhí)行文件TopMp3Player.exe。圖4.1 移除工程配置4.2 系統(tǒng)運行這款音樂播放器啟動運行后,程序主界面如下所示:圖4.2 音樂播放器界面4.3 系統(tǒng)功能界面4.3.1 加入文件功能實現(xiàn)功能描述:選擇電腦中或者從網(wǎng)絡上已下載的最新的歌曲,將之加入播放器的播放列表,同時更新播放列表。處理流程: 圖 4.3 “加入文件”處理流程圖 運行單擊設定歌曲單擊加入文件彈出打開文件對話框選中文件,單擊打開完成添加 流程描述:用戶運行音樂播放器軟件,單擊播放器的設定歌曲按鈕,選擇加 圖4.4 加入文件功能演示圖入文件,如圖4.4所示。此時播放器調(diào)用OnAddfileMenu()函數(shù)打開加入音樂對話框:圖4.5 加入音樂對話框從彈出的對話框中選擇最后需要打開的文件,點擊確定,從而實現(xiàn)添加文件的功能。上述內(nèi)容詳細代碼見附錄。4.3.2 加入目錄功能描述:實現(xiàn)加入一個目錄下面所有需要進行播放的歌曲,同時更新播放器播放列表。處理流程: 4.6 “加入目錄”流程圖運行單擊設定歌曲單擊加入目錄彈出打開目錄對話框選中目錄,單擊打開完成添加流程描述:用戶運行音樂播放器軟件,單擊播放器的設定歌曲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 復古主題公園投資合作協(xié)議
- 餐飲連鎖店衛(wèi)生管理措施
- 水資源開發(fā)項目房產(chǎn)抵押合作合同
- 網(wǎng)絡文學版權獨占代理及網(wǎng)絡文學網(wǎng)站運營合作協(xié)議
- 資產(chǎn)置換債務本金結算與資產(chǎn)評估協(xié)議
- 航空票務代理銷售渠道拓展及業(yè)務流程優(yōu)化協(xié)議
- 智能家居系統(tǒng)節(jié)能改造與安裝服務合同
- 初級中學2025年家校合作共建計劃
- 2025年EPS再生料項目規(guī)劃申請報告模板
- 閩教版(2025修訂版)信息技術知識競賽計劃
- 非遺扎染創(chuàng)新創(chuàng)業(yè)計劃書
- 超星爾雅學習通《先秦諸子導讀(浙江大學)》2025章節(jié)測試附答案
- 江蘇社工考試試題及答案
- 2025年勞務合同模板電子版簡短一點
- 二級建造師繼續(xù)教育題庫(帶答案)
- 市場監(jiān)管投訴舉報培訓
- 《新能源乘用車二手車鑒定評估技術規(guī)范 第1部分:純電動》
- 課題申報參考:西藏地方與祖國關系史融入當?shù)馗咝!爸腥A民族共同體概論”課教學研究
- 【MOOC】《C++程序設計基礎》(華中科技大學)章節(jié)作業(yè)中國大學慕課答案
- 《南方航空公司匯率風險管理策略案例分析》
- 病房心臟驟停應急演練
評論
0/150
提交評論