基于QT的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于QT的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于QT的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于QT的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于QT的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于 QT 的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)摘要: 計(jì)算機(jī)技術(shù)的飛速發(fā)展大大提高了人們的工作效率, 尤其是互聯(lián)網(wǎng)技術(shù)更是很大程度上豐富和方便了人們的生活。 近些年來(lái), 人們的生活水平也在不斷提升, 在物質(zhì)豐富的條件下, 人們開(kāi)始在工作之余關(guān)注娛樂(lè), 期望在其它方面釋放工作壓力, 同時(shí)培養(yǎng)自己的興趣愛(ài)好, 隨之而來(lái)的是人們對(duì)多媒體應(yīng)用的關(guān)注, 許多電影播放平臺(tái)、 音 樂(lè)播放軟件等逐漸深入人們的生活,并慢慢地成為人們生活重要組成部分。目前, 互聯(lián)網(wǎng)上已經(jīng)擁有大量的音樂(lè)播放軟件, 這些軟件是各個(gè)軟件供應(yīng)商的商品關(guān)鍵組成部分, 當(dāng)前其實(shí)現(xiàn)技術(shù)較復(fù)雜, 在功能方面相當(dāng)完備且強(qiáng)大, 如何簡(jiǎn)單、 高效、方便地設(shè)計(jì)實(shí)現(xiàn)

2、一款小巧美觀的音樂(lè)播放器軟件成為人們關(guān)注的熱點(diǎn)。 基于該問(wèn)題, 本文設(shè)計(jì)并實(shí)現(xiàn)了基于Qt 的音樂(lè)播放軟件,該軟件能夠便捷、高效地為用戶(hù)展示音樂(lè)播放界面, 方便的進(jìn)行歌曲播放和控制功能。 本文的工作分為軟件界面設(shè)計(jì)和軟件功能實(shí)現(xiàn)兩部分, 其中, 軟件界面設(shè)計(jì)工作主要包括用戶(hù)界面設(shè)計(jì)實(shí)現(xiàn); 各個(gè)功能模塊實(shí)現(xiàn)工作主要包括后臺(tái)程序編碼設(shè)計(jì)模塊化完成設(shè)計(jì)等內(nèi)容。該音樂(lè)播放軟件以 Qt 開(kāi)發(fā)平臺(tái)中實(shí)現(xiàn)歌曲播放的相應(yīng)功能為基本框架設(shè)計(jì),通過(guò)C+ 語(yǔ)言編程實(shí)現(xiàn)各個(gè)功能函數(shù), 軟件設(shè)計(jì)方面采用模塊化的軟件設(shè)計(jì)思想實(shí)現(xiàn), 具有友好的用戶(hù)交互界面和高承載能力的運(yùn)行穩(wěn)定性。關(guān)鍵詞 : Qt; Qt Creator;

3、音樂(lè)播放器Abstract: The rapid development of computer technology has greatly improved the efficiency of people's work, especiallythe Internet technology is to a large extent, rich and convenient for people's lives. In recent years, people's living level also in the continuous upgrading, under

4、 the condition of material wealth, people began to in the remaining of the work focused on entertainment, expect to release work pressure, on the other hand, and cultivate their interests and hobbies, the attendant is concern on the application of multimedia, many movies broadcast platform, music pl

5、ayer software suchas graduallydeep into people's life and slowly become an important part of people's lives.At present, the Internet has a lot of music player software, the software is part of various software vendors of key commodities and the implementation technology is more complex, the

6、function is quite complete, and the powerful, how simple, efficient and convenient to design and implement a clever little beautiful music player software become the focus of people's attention. Based on this problem, this paper designs and implements the music player software based on Qt, which

7、 is convenient and efficient for the user to display the music player interface. For software interface design and software implementation of the work division. Among them, software interface design work mainly includes user interface design and implementation; each function module realization mainl

8、y includes the backstage code module design to complete the design.The music player software to Qt development platform to achieve the song playing the corresponding function as the basic framework for the design, using C + + programming languageimplementation of all functions, software design using

9、 modular designidea of the software, with a friendly user interface and high load carrying ability, the stability of operation.Keywords: Qt; Qt Creator; musicplayer基于 QT 的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn) 11、 引 言 41.1 背景與意義 41.2 國(guó)內(nèi)外研究現(xiàn)狀 51.3 研究目標(biāo)及內(nèi)容 61.4 可行性分析 71.4.1 經(jīng)濟(jì)可行性 71.4.2 技術(shù)上可行性 81.5 論文組織結(jié)構(gòu) 82、 相關(guān)技術(shù)研究 92.1 Qt 介紹 9

10、2.2 Qt 的優(yōu)勢(shì) 92.3 面向?qū)ο箝_(kāi)發(fā)過(guò)程103、 軟件分析與設(shè)計(jì)123.1 需求分析內(nèi)容123.2 軟件需求分析133.3 軟件設(shè)計(jì) 144、 軟件功能實(shí)現(xiàn)164.1 軟件總體架構(gòu) 164.2 軟件工作流程 164.3 軟件功能實(shí)現(xiàn) 174.3.1 播放歌曲模塊 224.3.2 播放控制模塊 254.3.3 歌曲列表管理模塊294.3.4 軟件界面模塊 335、 結(jié)論與展望375.1 軟件功能總結(jié)375.2 軟件工作流程375.3 應(yīng)用展望 385.4 工作總結(jié) 38致謝 40參考文獻(xiàn) 41附錄 44一、 引 言隨著現(xiàn)代化建設(shè)的不斷深入和人民生活水平的日益提高, 大量的計(jì)算機(jī)設(shè)備和復(fù)雜

11、網(wǎng)絡(luò)信息系統(tǒng)在各行各業(yè)當(dāng)中廣泛布置, 這些系統(tǒng)在完成了原來(lái)許多人力才能實(shí)現(xiàn)的工作的同時(shí), 由于改進(jìn)了工作模式和工作方法, 使得相應(yīng)領(lǐng)域的工作效率也迅速提升, 在相等的時(shí)間容量里產(chǎn)生了更大的經(jīng)濟(jì)羊效益和社會(huì)效益。 因此, 人們對(duì)計(jì)算機(jī)計(jì)算、 網(wǎng)絡(luò)技術(shù)和現(xiàn)代通信技術(shù)等大量技術(shù)在日常生活中的進(jìn)一步應(yīng)用產(chǎn)生了關(guān)注, 期望在各領(lǐng)域內(nèi)的實(shí)現(xiàn)工作的計(jì)算機(jī)化、網(wǎng)絡(luò)化和自動(dòng)化,提升工作效能。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展以及在各個(gè)領(lǐng)域的廣泛普及, 各行各業(yè)的工作都變得信息化、 現(xiàn)代化和智能化, 這些技術(shù)在推動(dòng)經(jīng)濟(jì)持續(xù)發(fā)展的同時(shí), 也給人們的生活帶來(lái)了極大的便利, 為人們生活水平的提高起到了巨大的推動(dòng)作用。

12、科技在日新月異的發(fā)展的同時(shí), 人們生活質(zhì)量也在不斷的提高, 人們工作之余的業(yè)余生活也越來(lái)越豐富多彩, 這些娛樂(lè)活動(dòng)一方面可以減輕人們的工作壓力, 增加一些娛樂(lè)時(shí)間, 另一方面,許多人可以在這些娛樂(lè)活動(dòng)當(dāng)中培養(yǎng)自己的特長(zhǎng)和興趣愛(ài)好等, 而音樂(lè)正是許多人所共同擁有的一項(xiàng)愛(ài)好之一。在個(gè)人計(jì)算機(jī)快速普及的情形下, 各種各樣的計(jì)算機(jī)應(yīng)用程序?qū)映霾桓F, 紛雜多樣,一些領(lǐng)域軟件的開(kāi)發(fā)和普及, 極大的提高人們的工作效率, 讓人們?cè)诟鞣N軟件的幫助下,更加方便快速的完成各項(xiàng)工作任務(wù), 而不用像以往那樣需要復(fù)雜的人工過(guò)程。 與此同時(shí),這些軟件極大的豐富了人們的娛樂(lè)生活, 讓人們的娛樂(lè)方式更加多樣化。 音樂(lè)播放軟件就

13、是這些眾多類(lèi)型軟件中的一種音樂(lè)播放器通常運(yùn)行于個(gè)人電腦端, 為用戶(hù)提供播放音樂(lè)的功能, 同時(shí)也有一些音樂(lè)播放軟件提供其它的功能如時(shí)事資訊等, 音樂(lè)播放軟件的出現(xiàn)為人們的工作生活帶來(lái)了樂(lè)趣, 提升了用戶(hù)的娛樂(lè)體驗(yàn), 是一種有巨大實(shí)用價(jià)值的計(jì)算機(jī)應(yīng)用程序。1.1 背 景與意義計(jì)算機(jī)的快速發(fā)展已經(jīng)使得人們可以通過(guò)更加豐富的手段來(lái)獲取信息, 傳統(tǒng)的情形下, 人們大多使用文字來(lái)傳遞信息, 這種信息傳遞方式具有方便熟悉的特性, 沿用了上千年至今。 如今, 在計(jì)算機(jī)技術(shù)的巨大推動(dòng)下, 許多其它的信息傳遞方式也越來(lái)越多的被人們使用著, 越來(lái)越多的走進(jìn)了人們的日常生活之中。 而多媒體技術(shù)正是這種情形下產(chǎn)生的一種

14、信息傳遞技術(shù),我們通常所說(shuō)的"媒體"(Media)包括其中的兩點(diǎn)含義 是指信息的物理載體, 這種載體是實(shí)實(shí)在在的物質(zhì)存在, 可以將信息對(duì)物質(zhì)方式改變而在載體上留下痕跡,這些載體至今已經(jīng)沿用了許多年,這類(lèi)載體包括書(shū)本、光盤(pán)等;另一層含義是指信息以其外在的表現(xiàn),給人以感觀的形式來(lái)傳播信息,包括文字、聲音、圖像等。 對(duì)于這里所說(shuō)的多媒體計(jì)算機(jī)而言, 其主要是指后者, 這種多媒體計(jì)算機(jī)可以處理文字、圖像和動(dòng)畫(huà)之類(lèi)的信息。多媒體計(jì)算機(jī)作為目前廣泛使用的計(jì)算機(jī)設(shè)備, 其重要功能就是對(duì)多媒體文件的播放功能, 其中包括的一種格式的多媒體文件就是音樂(lè)。 在音樂(lè)播放器成為人們了廣泛應(yīng)用的計(jì)算機(jī)

15、應(yīng)用軟件之后, 人們的日常生活被極大地豐富, 越來(lái)越多的人們開(kāi)始使用音樂(lè)播放器來(lái)對(duì)計(jì)算機(jī)設(shè)備上的音樂(lè)文件播放, 而互聯(lián)網(wǎng)上的音樂(lè)目前也正以極大極豐富的產(chǎn)量在生產(chǎn)之中, 每天都會(huì)有數(shù)以萬(wàn)計(jì)的新的音樂(lè)產(chǎn)生, 而作為為用戶(hù)需求考慮的軟件開(kāi)發(fā)人員來(lái)說(shuō), 設(shè)計(jì)并實(shí)現(xiàn)一款音樂(lè)播放器應(yīng)用程序則成為一種應(yīng)用需求。 目前, 互聯(lián)網(wǎng)上已經(jīng)擁有大量的音樂(lè)播放器, 這些播放器不僅使用方便快捷, 而且往往擁有強(qiáng)大的功能,并且擁有十分友好的用戶(hù)交互界面,廣受用戶(hù)的好評(píng)。但是用 Qt Creator開(kāi)發(fā)的音樂(lè)播放器小巧而功能齊全, 方便移植到嵌入式平臺(tái)下或其他平臺(tái)下, 只需一次編譯就可在不同平臺(tái)下運(yùn)行播放。 隨著現(xiàn)在科技的

16、發(fā)展, 越來(lái)越多的嵌入式設(shè)備已經(jīng)被廣泛應(yīng)用于生活中,因此嵌入式軟件的開(kāi)發(fā)對(duì)于嵌入式系統(tǒng)設(shè)備的發(fā)展有著非常重要的意義。1.2 國(guó) 內(nèi)外研究現(xiàn)狀計(jì)算機(jī)的快速發(fā)展使用, 讓個(gè)人計(jì)算機(jī)迅速在廣大人群當(dāng)中普及開(kāi)來(lái)。 而隨著越來(lái)越的的個(gè)人計(jì)算機(jī)連接到互聯(lián)網(wǎng)上, 網(wǎng)絡(luò)的規(guī)模越來(lái)越大, 互聯(lián)網(wǎng)上的資源也越來(lái)越豐富多樣,各種應(yīng)用層出不窮,令人目不暇接。而早在互聯(lián)網(wǎng)開(kāi)始普及之初,大量的計(jì)算機(jī)應(yīng)用就已經(jīng)開(kāi)始被人們關(guān)注并開(kāi)始進(jìn)行開(kāi)發(fā), 早期的計(jì)算機(jī)體積大, 存儲(chǔ)量小, 可以安裝運(yùn)行的計(jì)算機(jī)應(yīng)用程序極為有限,而隨著計(jì)算機(jī)CPU 和內(nèi)存儲(chǔ)器的質(zhì)量和規(guī)模不斷擴(kuò)展,更多的應(yīng)用程序出現(xiàn)在互聯(lián)網(wǎng)上,類(lèi)型也越來(lái)越多樣化。在這一發(fā)展

17、趨勢(shì)下, 互聯(lián)網(wǎng)娛樂(lè)軟件的發(fā)展也走進(jìn)了一個(gè)新天地。 大量的娛樂(lè)軟件被世界各地的用戶(hù)下載使用, 這些應(yīng)用極大的方便了人們的學(xué)習(xí)工作和生活, 提升了工 作效率, 減輕了工作壓力, 也豐富了工作之余的個(gè)人生活。 音樂(lè)則作為這眾多類(lèi)型的應(yīng)用當(dāng)中的一種,已經(jīng)被人們廣泛的使用開(kāi)來(lái)。最早用來(lái)播放音樂(lè)的設(shè)備應(yīng)當(dāng)屬于硬件設(shè)備, 因?yàn)橛布O(shè)備出現(xiàn)的相對(duì)較早, 而軟件設(shè)備的出現(xiàn)是在個(gè)人計(jì)算機(jī)出現(xiàn)之后, 才開(kāi)始大量的在互聯(lián)網(wǎng)上出現(xiàn)并運(yùn)用。 到目前為止, 軟件播放設(shè)備的種類(lèi)數(shù)量和使用量反而超過(guò)了硬件播放設(shè)備, 因?yàn)槠渚哂蟹奖憧旖萸乙讛y帶等特點(diǎn)。目前互聯(lián)網(wǎng)止廣泛應(yīng)用的音樂(lè)播放設(shè)備,比較著名的包括KuGou音樂(lè)播放器, 酷

18、我音樂(lè)播放器, 這些都是專(zhuān)門(mén)用于音頻媒體文件的播放; 也有一些軟件附帶的功能中,也包含音樂(lè)播放軟件,如騰訊QQ 軟件附帶的 QQ 音樂(lè)播放器,該播放器隨著騰訊QQ 的普及也迅速普及開(kāi)來(lái),用戶(hù)數(shù)量巨大。而隨著個(gè)人計(jì)算機(jī)設(shè)備在人群中的廣泛普及, 每個(gè)人都可以學(xué)習(xí)計(jì)算機(jī)技術(shù)、 程序設(shè)計(jì)語(yǔ)言等知識(shí), 來(lái)開(kāi)發(fā)適合個(gè)人使用的, 結(jié)合自身需求的計(jì)算機(jī)應(yīng)用軟件。 本文正是在考慮目前互聯(lián)網(wǎng)上使用量較多的音樂(lè)播放器后,試圖通過(guò)Qt 開(kāi)發(fā)出一款適合個(gè)人使用的音樂(lè)播放器軟件,能夠小巧方便的運(yùn)行的個(gè)人計(jì)算機(jī)上。1.3 研 究目標(biāo)及內(nèi)容當(dāng)今社會(huì), 生活水平雖然在不斷提高, 但是人們也生活在巨大的壓力之下, 需要有能夠釋放

19、壓力的娛樂(lè)活動(dòng), 聽(tīng)歌則是一種相對(duì)比較溫和的娛樂(lè)方式。 在音樂(lè)播放器軟件大量推廣及應(yīng)用的情形下, 對(duì)音樂(lè)播放器軟件的進(jìn)一步深入的開(kāi)發(fā)和改進(jìn)成為人們對(duì)音樂(lè)播放器軟件的一個(gè)重要的功能需求。音樂(lè)播放器作為人們娛樂(lè)生活的重要組成部分,對(duì)軟件的用戶(hù)體驗(yàn)與一般軟件相比要高,而且對(duì)軟件的功能需求也要求相對(duì)較多,因此,本文在綜合考慮各種可能的功能需求以后,設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于Qt 的音樂(lè)播放器軟件,實(shí)現(xiàn)人們?nèi)粘R魳?lè)播放的一般功能,豐富人們的娛樂(lè)生活。本文所設(shè)計(jì)實(shí)現(xiàn)的軟件,是在廣泛的研究目前已經(jīng)正在使用的音樂(lè)播放軟件之后,吸收了大多數(shù)軟件的優(yōu)點(diǎn)和長(zhǎng)處, 并擁有自身的界面特點(diǎn), 針對(duì)用戶(hù)實(shí)際使用當(dāng)中可能會(huì)有的功能需求

20、,進(jìn)而對(duì)音樂(lè)播放軟件進(jìn)行開(kāi)發(fā),因此,該軟件具有較強(qiáng)的實(shí)用性,該軟件概括起來(lái)具有以下幾個(gè)方面的特點(diǎn)。( 1)先進(jìn)的模塊化開(kāi)發(fā)思想,對(duì)于歌曲的播放、播放控制等各個(gè)部分分別對(duì)應(yīng)不同的模塊來(lái)進(jìn)行開(kāi)發(fā),這樣既方便了軟件的結(jié)構(gòu)設(shè)計(jì),也最大程度上提升開(kāi)發(fā)的效率。( 2)提供良好的人機(jī)交互界面,使用 Qt 開(kāi)發(fā)的軟件共有的特點(diǎn)之一就是能夠開(kāi)發(fā)出具有很好的操作界面的應(yīng)用程序,這也是本文所開(kāi)發(fā)的軟件的優(yōu)點(diǎn)之一。( 3)可以對(duì)歌曲內(nèi)容進(jìn)行選擇,查找,控制播放等功能,運(yùn)行方便快捷,可靠性高。軟件的總體開(kāi)發(fā)環(huán)境為 Windows 環(huán)境,具體使用的編程語(yǔ)言則是采用 C+ 編程語(yǔ)言,在Qt Creator開(kāi)發(fā)平臺(tái)的環(huán)境下進(jìn)

21、行軟件程序的編寫(xiě)。該平臺(tái)作為一個(gè)操作簡(jiǎn)便的開(kāi)發(fā)環(huán)境,其最大 的優(yōu)勢(shì)就是對(duì)用戶(hù)界面應(yīng)用程序的開(kāi)發(fā),可以迅速的開(kāi)發(fā)出界面友好、功能完備的應(yīng)用程序,在良好的用戶(hù)界面的展示下,用戶(hù)會(huì)擁有更高的操作效率,同時(shí)在良好的用戶(hù)界面下還能夠?qū)崿F(xiàn)軟件應(yīng)當(dāng)實(shí)現(xiàn)的功能。 總之, 良好的界面與功能的結(jié)合是該軟件的一大優(yōu)勢(shì),基本上可以滿足大多數(shù)用戶(hù)的使用需求。本文在設(shè)計(jì)實(shí)現(xiàn)基于 Qt 的音樂(lè)播放器軟件的同時(shí),充分考慮了 Qt 的語(yǔ)言特性和開(kāi)發(fā)環(huán)境, 發(fā)揮了其在用戶(hù)界面應(yīng)用程序開(kāi)發(fā)當(dāng)中的優(yōu)勢(shì), 對(duì)音樂(lè)播放器軟件進(jìn)行了開(kāi)發(fā)。 本軟件結(jié)合實(shí)際使用當(dāng)中可能使用到的軟件功能, 并采用軟件工程中模塊化的開(kāi)發(fā)思想,完成該音樂(lè)播放器軟件

22、的開(kāi)發(fā),最終設(shè)計(jì)并實(shí)現(xiàn)一個(gè)Windows 平臺(tái)下運(yùn)行的音樂(lè)播放器軟件。1.4 可 行性分析1.4.1 經(jīng)濟(jì)可行性隨著計(jì)算機(jī)的普及, 越來(lái)越多的人學(xué)會(huì)了使用計(jì)算機(jī)。 與此同時(shí), 計(jì)算機(jī)的價(jià)格相對(duì)于過(guò)去來(lái)說(shuō)也便宜了很多, 但是在運(yùn)行性能上卻有了很大的提升。 在目前互聯(lián)網(wǎng)上已經(jīng)廣泛存在大量的音樂(lè)播放器軟件的同時(shí), 開(kāi)發(fā)出具有自身特色的音樂(lè)播放器軟件, 能夠讓用戶(hù)體驗(yàn)到更新的軟件體驗(yàn), 能夠極大地減輕用戶(hù)的長(zhǎng)期使用某個(gè)軟件產(chǎn)生的心理負(fù)擔(dān),提高用戶(hù)工作活動(dòng)的效率。但是,在開(kāi)發(fā)的過(guò)程當(dāng)中僅僅使用到了計(jì)算機(jī)設(shè)備,并沒(méi)有使用到其它的一些資源,因此,系統(tǒng)在經(jīng)濟(jì)上是可行的。1.4.2 技術(shù)上可行性本課題使用Qt

23、Creator作為本軟件的開(kāi)發(fā)工具。相比于 VC+ , Qt Creator能夠提供更多的面向用戶(hù)界面調(diào)用函數(shù), 在開(kāi)發(fā)界面上也更加人性化, 方便用戶(hù)使用。 其代碼模塊化程度非常高, 如果系統(tǒng)日后有一些需要改動(dòng)的地方, 用此開(kāi)發(fā)工具可以方便地實(shí)現(xiàn)對(duì)系統(tǒng)的擴(kuò)展和修改。 因此, 本系統(tǒng)在開(kāi)發(fā)上的各種技術(shù)條件都是滿足的。 它在技術(shù)上是可行的。 本系統(tǒng)為一個(gè)小型的音樂(lè)播放器軟件, 它所需要消耗的資源非常小, 而且運(yùn)行成本低, 一般個(gè)人的計(jì)算機(jī)的硬件條件都能夠滿足本軟件的運(yùn)行。 所以, 本軟件在 運(yùn)行上是可行的。1.5 論 文組織結(jié)構(gòu)本文共分為五章,各章內(nèi)容如下:第一章為引言, 首先介紹了課題的研究背景

24、和研究?jī)?nèi)容, 對(duì)音樂(lè)播放器的國(guó)內(nèi)處研究現(xiàn)狀進(jìn)行了深入的探討, 然后闡明了研究的目的和內(nèi)容, 最后給出了文章的組織結(jié)構(gòu)。第二章為相關(guān)技術(shù)綜述,該部分重點(diǎn)介紹了開(kāi)發(fā)該軟件時(shí)所用到的 Qt 程序設(shè)計(jì)語(yǔ)言,以及本文在程序設(shè)計(jì)時(shí)使用的軟件開(kāi)發(fā)環(huán)境Qt creator,對(duì)該軟件平臺(tái)的基本情況進(jìn)行了詳細(xì)的介紹。第三章為軟件分析與設(shè)計(jì), 首先系統(tǒng)的總體結(jié)構(gòu)要求歸納出系統(tǒng)的功能需求, 在需求分析過(guò)程當(dāng)中, 考慮音樂(lè)播放器軟件所有可能的功能需求, 包括功能完備性、 穩(wěn)定性、可維護(hù)性以及可擴(kuò)展性,然后根據(jù)軟件需求分析的結(jié)果對(duì)軟件基本架構(gòu)進(jìn)行了設(shè)計(jì)工作。第四章為系統(tǒng)主要功能實(shí)現(xiàn),采用模塊化的設(shè)計(jì)思想,利用 Qt cr

25、eator 軟件進(jìn)行音樂(lè)播放器進(jìn)行設(shè)計(jì)和功能實(shí)現(xiàn), 實(shí)現(xiàn)了較好的用戶(hù)界面和較快的操作效率, 實(shí)現(xiàn)了音樂(lè) 播放器的基本功能,包括音樂(lè)播放功能、暫停功能、播放進(jìn)度展示功能等一系列功能。第五章為總結(jié)與展望,總結(jié)了基于 Qt 的音樂(lè)播放器軟件的功能特點(diǎn),對(duì)軟件的工作流程進(jìn)行了歸納整理, 同時(shí)分析了該音樂(lè)播放器的應(yīng)用前景, 最后對(duì)前期的畢業(yè)設(shè)計(jì)工作進(jìn)行了總結(jié)。相關(guān)技術(shù)研究2.1 Qt 介紹Qt 作為一個(gè)應(yīng)用程序開(kāi)發(fā)框架,可以方便的開(kāi)發(fā) C+ 的圖形用戶(hù)界面,另外, Qt中包裝了一組可供調(diào)用的GUI 類(lèi),這類(lèi)的在運(yùn)行效率高, 對(duì)于 Qt 的程序的運(yùn)行速率有很大的幫助。 Qt 作為一個(gè)開(kāi)源的 C+ 工具包,

26、吸引了眾多的開(kāi)發(fā)人員使用 Qt 來(lái)進(jìn)行用戶(hù)界面應(yīng)用程序的開(kāi)發(fā), Qt 也為開(kāi)發(fā)人員提供了極為方便的平臺(tái)開(kāi)發(fā)工具。2.2 Qt 的優(yōu)勢(shì)Qt Creator是跨平臺(tái)的Qt IDE , Qt Creator是Qt被Nokia收購(gòu)后推出的一款新的輕量級(jí)集成開(kāi)發(fā)環(huán)境( IDE )。此 IDE 能夠跨平臺(tái)運(yùn)行,支持的系統(tǒng)包括Linux (32 位及64位)、Mac OS X以及Windows。根據(jù)官方描述,Qt Creator的設(shè)計(jì)目標(biāo)是使開(kāi)發(fā) 人員能夠利用 Qt 這個(gè)應(yīng)用程序框架更加快速及輕易的完成開(kāi)發(fā)任務(wù)。在功能方面,Qt Creator包括項(xiàng)目生成向?qū)А⒏呒?jí)的C+代碼編輯器、瀏覽文件及 類(lèi)的工具、集

27、成了 Qt Designer; Qt Assistant Qt Linguist、圖形化的GDB調(diào)試前端,集 成qmake構(gòu)建工具等。Qt Creator主要是為了幫助新 Qt用戶(hù)更快速入門(mén)并運(yùn)行項(xiàng)目,還可提高有經(jīng)驗(yàn)的 Qt 開(kāi)發(fā)人員的工作效率。 使用強(qiáng)大的 C+ 代碼編輯器可快速編寫(xiě)代碼 ,語(yǔ)法標(biāo)識(shí) 和代碼完成功能輸入時(shí)進(jìn)行靜態(tài)代碼檢驗(yàn)以及提示樣式上下文相關(guān)的幫助代碼折疊括號(hào)匹配和括號(hào)選擇模式高級(jí)編輯功能。使用 瀏覽工具管理源代碼 , 集成了 領(lǐng)先 的版本控制軟件 , 包括 Git、 Perforce和Subversion開(kāi)放式文件,無(wú)須知曉確切的名稱(chēng)或位置搜索類(lèi)和文件跨不同位 置或文件沿用

28、符號(hào)在頭文件和源文件,或在聲明和定義之間切換。為 Qt 跨平臺(tái)開(kāi)發(fā)人員的需求而量身定制 ,集成了特定于 Qt 的功能,如信號(hào)與槽(Signals & SlotsU示調(diào)試器,對(duì)Qt類(lèi)結(jié)構(gòu)可一目了然集成了 Qt Designer可視化布局 和格式構(gòu)建器只需單擊一下就可生成和運(yùn)行Qt 項(xiàng)目。與其它的圖形用戶(hù)界面應(yīng)用程序開(kāi)發(fā)軟件相比, Qt 真正做到了面向程序開(kāi)發(fā)人員的界面開(kāi)發(fā)功能, 該功能很容易使用面向?qū)ο蠹夹g(shù)來(lái)實(shí)現(xiàn), 并且能夠真正的允許程序開(kāi)發(fā)人員根據(jù)自身的需求對(duì)其進(jìn)行擴(kuò)展,Qt與其它幾種GUI的對(duì)比結(jié)果如下表:表2-1 Qt與其它GUI的對(duì)比名稱(chēng)參數(shù)MiniGUIOpenGUIQt/Em

29、beddedAPI (完備性)Win32 (很完備)私有(很完備)Qt(C+)(很完備)函數(shù)庫(kù)典型大小300KB300KB600KB移植性很好只支持x86平臺(tái)較好授權(quán)條款LGPLLGPLOPL/GPL系統(tǒng)消耗小最小最大操作系統(tǒng)支持LinuxLinux,DOS,QNXLinux2.3 面向?qū)ο箝_(kāi)發(fā)過(guò)程在當(dāng)前計(jì)算機(jī)領(lǐng)域的前沿中,最熱門(mén)的是面向?qū)ο蟮能浖_(kāi)發(fā)方面。 其中針對(duì)面向 對(duì)象的問(wèn)題進(jìn)行求解這一方面是當(dāng)前最受關(guān)注的重要趨勢(shì)之一。在眾多的開(kāi)發(fā)語(yǔ)言中, C+是一種面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言。因此,C+也同時(shí)具備了面向?qū)ο蟮恼Z(yǔ)言的一些優(yōu)點(diǎn), 比如說(shuō):代碼能夠使開(kāi)發(fā)人員方便地進(jìn)行代碼維護(hù), 代碼能夠讓開(kāi)發(fā)人員

30、進(jìn)行相應(yīng)的擴(kuò) 展,且不會(huì)讓攻擊者進(jìn)行惡意攻擊、特定功能的代碼可以形成一個(gè)模塊,然后開(kāi)發(fā)人員 可以對(duì)其進(jìn)行重用等優(yōu)點(diǎn)。這些優(yōu)點(diǎn)對(duì)于面向過(guò)程的開(kāi)發(fā)語(yǔ)言來(lái)說(shuō)都是不能夠?qū)崿F(xiàn)的。 所以,總結(jié)了面向?qū)ο蟮木幊碳夹g(shù)的優(yōu)點(diǎn)如下:(1)可管理性,維護(hù)簡(jiǎn)單開(kāi)發(fā)人員要開(kāi)發(fā)一個(gè)面向過(guò)程的系統(tǒng)時(shí),通常的版本管理指的是管理函數(shù)和開(kāi)發(fā)系 統(tǒng)過(guò)程中的全程變量。而在開(kāi)發(fā)的后期,函數(shù)可以做出較大的變動(dòng),與此同時(shí),全程變 量也可以做出相應(yīng)的變動(dòng)。但是對(duì)于一個(gè)面向?qū)ο蟮某绦騺?lái)說(shuō),開(kāi)發(fā)人員開(kāi)發(fā)出的一個(gè) 系統(tǒng)是由對(duì)象來(lái)組成的。而對(duì)象又是由類(lèi)來(lái)生成的,所以如果想要管理對(duì)象,只需要對(duì) 類(lèi)進(jìn)行管理就可以了。(2)模塊化對(duì)于面向?qū)ο蟮木幊陶Z(yǔ)言來(lái)

31、說(shuō),模塊化是其一個(gè)最明顯且最基本的特征。 實(shí)體在編 程語(yǔ)言中,會(huì)被表示成類(lèi),且它和同一名字空間中的相應(yīng)類(lèi)能夠具有相同的功能。開(kāi)發(fā)人員在編程過(guò)程中,能夠在名字空間中添加一個(gè)簡(jiǎn)單的類(lèi), 但同時(shí)也不會(huì)影響該名字空 問(wèn)中的其他成員中的作用。(3)可擴(kuò)充性開(kāi)發(fā)人員在開(kāi)發(fā)現(xiàn)代應(yīng)用軟件時(shí), 對(duì)于軟件的可擴(kuò)充性也會(huì)提出相應(yīng)的要求。 可擴(kuò)充性即是如果開(kāi)發(fā)人員在后期需要對(duì)軟件做出相應(yīng)修改或擴(kuò)充時(shí), 需要能夠很方便地軟件代碼進(jìn)行修改。 根據(jù)開(kāi)發(fā)規(guī)范的規(guī)定, 這種軟件的擴(kuò)充和修改的相應(yīng)范圍不僅要涉及到相關(guān)軟件的內(nèi)容,也可以對(duì)軟件的形式和工作機(jī)制進(jìn)行相應(yīng)的修改和擴(kuò)充。開(kāi)發(fā)人員在設(shè)計(jì)面向?qū)ο蟮某潭葧r(shí), 要注意其應(yīng)該具備良

32、好的可擴(kuò)充性。 因?yàn)榫幊陶Z(yǔ)言中的類(lèi)可以根據(jù)人類(lèi)對(duì)于相關(guān)事物的理解給予它們相應(yīng)的意義。 因此在后期不會(huì)做出很大的改動(dòng)。 開(kāi)發(fā)人員可以利用繼承的方法對(duì)新的類(lèi)進(jìn)行添加相關(guān)屬性的操作。 同時(shí),也可以用它生成系統(tǒng)的原型。( 4)代碼重用開(kāi)發(fā)人員在開(kāi)發(fā)系統(tǒng)時(shí), 要把握的一個(gè)核心思路便是要提高系統(tǒng)的可重用性。 面向?qū)ο蟮某潭仍O(shè)計(jì)在編程時(shí)具備四大特點(diǎn):抽象、封閉、繼承、多態(tài)等。這四個(gè)特點(diǎn)都是圍繞著提高系統(tǒng)的可重用性來(lái)進(jìn)行編碼的。在經(jīng)典的開(kāi)發(fā)系統(tǒng)的過(guò)程中,其可重用性主要體現(xiàn)在以下兩個(gè)方面:( 1)系統(tǒng)開(kāi)發(fā)的類(lèi)不僅可以被本系統(tǒng)繼承和使用,還可以被別人使用。( 2)代碼重用的核心就是使要實(shí)現(xiàn)代碼能夠繼承。三、 軟件

33、分析與設(shè)計(jì)3.1 需求分析內(nèi)容“需求”一詞最早的出現(xiàn),應(yīng)該是在經(jīng)濟(jì)學(xué)領(lǐng)域,指一個(gè)特定時(shí)期內(nèi),消費(fèi)者在某一價(jià)格下對(duì)一種商品, 愿意而且能夠購(gòu)買(mǎi)的數(shù)量。 由于在社會(huì)生活中具有普遍意義, “需 求”的概念一經(jīng)提出,就被迅速而廣泛地應(yīng)用到政治、經(jīng)濟(jì)、軍事等各個(gè)領(lǐng)域,內(nèi)涵也不斷豐富。但無(wú)論應(yīng)用到哪個(gè)領(lǐng)域,“需求”內(nèi)在的、核心的內(nèi)涵是基本一致的,即是對(duì)事物發(fā)展前景、 期望的描述, 實(shí)質(zhì)是提示事物當(dāng)前狀態(tài)與期望狀態(tài), 當(dāng)前能力與期望能力之間的差距。一般情況下, “需求”具有以下基本特性:一是時(shí)間性,即需求是某一時(shí)間段內(nèi)的需求,沒(méi)有時(shí)間約定的需求沒(méi)有音義二是主觀性,即需求源自需求提出方的主觀意愿;三是客觀性,

34、 即任何主觀需求都會(huì)受到客觀的制約,不管需求提出方是否認(rèn)識(shí)到這些制約,其都客觀存在。需求是指必須實(shí)現(xiàn)什么的規(guī)格說(shuō)明,它描述了系統(tǒng)的行為、特點(diǎn)或?qū)傩裕?是在開(kāi)發(fā)過(guò)程中對(duì)系統(tǒng)的約束。 需求就是人們對(duì)系統(tǒng)的主觀期望, 真正的需求存在于人們的腦 海中,任何文檔形式的需求僅僅是一個(gè)模型、一種敘述或描述而已。一般而言,對(duì)某人事物進(jìn)行需求分析過(guò)程大概包括如下幾個(gè)方面:( 1)需求預(yù)測(cè)。依靠管理者的經(jīng)驗(yàn)、國(guó)內(nèi)外類(lèi)似的經(jīng)驗(yàn)教訓(xùn),針對(duì)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)等過(guò)程中可能出現(xiàn)的需求變更和新需求,進(jìn)行預(yù)測(cè)。( 2)變更控制。在對(duì)實(shí)施過(guò)程中,難免會(huì)出現(xiàn)需求的變更,因此需要進(jìn)行變更控制, 首先要明確需求的變更, 然后針對(duì)變更的必要性

35、和可靠性、 變更所帶來(lái)的風(fēng)險(xiǎn)進(jìn)行評(píng)估, 確定是否進(jìn)行變更和如何進(jìn)行變更。 變更控制的結(jié)果將導(dǎo)致需求規(guī)格說(shuō)書(shū)版本的演變。( 3)版本規(guī)劃。由管理者根據(jù)需求的迫切性、需求實(shí)現(xiàn)的因果關(guān)系、設(shè)計(jì)實(shí)現(xiàn)和實(shí)施的過(guò)程特點(diǎn)等, 對(duì)版本演變過(guò)程進(jìn)行規(guī)劃, 形成對(duì)需求管理具有指導(dǎo)意義的 “路線 圖”。( 4)風(fēng)險(xiǎn)控制。分析設(shè)計(jì)實(shí)現(xiàn)和實(shí)施過(guò)程和需求變更過(guò)程中的風(fēng)險(xiǎn)因素,宣評(píng)估可能帶來(lái)的費(fèi)用、進(jìn)度、性能上的風(fēng)險(xiǎn),為管理者提出風(fēng)險(xiǎn)管理策略,為版本規(guī)劃提供依據(jù)3.2 軟件需求分析在設(shè)計(jì)實(shí)現(xiàn)音樂(lè)播放器軟件的同時(shí),可以對(duì)目前存在的不同類(lèi)型的音樂(lè)播放器進(jìn)行 廣泛深入的研究,查看軟件可能需要的需求內(nèi)容。因此,需要對(duì)具體問(wèn)題進(jìn)行具

36、體分析, 深入挖掘其需要實(shí)現(xiàn)的系統(tǒng)功能,以方便后面對(duì)軟件構(gòu)架的設(shè)計(jì)工作。需求分析的過(guò)程, 是開(kāi)發(fā)人員對(duì)音樂(lè)播放器工作過(guò)程的認(rèn)識(shí)與熟悉的過(guò)程,也是對(duì)軟件內(nèi)部工作流程進(jìn)行 計(jì)算機(jī)建模的過(guò)程,最終目的是通過(guò)需求分析了解用戶(hù)需求實(shí)現(xiàn)的功能,根據(jù)用戶(hù)提出的需求設(shè)計(jì)好系統(tǒng)的概念模型,對(duì)用戶(hù)提出的需求進(jìn)行計(jì)算機(jī)方法的描述, 并建立相應(yīng) 配套的需求分析文檔,設(shè)計(jì)好系統(tǒng)的具體實(shí)現(xiàn)方案。一般而言,設(shè)計(jì)人員對(duì)系統(tǒng)的需求 分析過(guò)程大體如圖3-1所示。當(dāng)前系統(tǒng)(目標(biāo)系統(tǒng)圖3-1需求分析模型在設(shè)計(jì)實(shí)現(xiàn)基于Qt的音樂(lè)播放器的同時(shí),由于考慮到音樂(lè)播放器的實(shí)際工作環(huán)境, 通常音樂(lè)播放器工作在個(gè)人電腦主機(jī)端,需要考慮到許多方面的

37、特點(diǎn),經(jīng)過(guò)本文的分析, 可以確定的是該軟件應(yīng)當(dāng)擁有以下幾個(gè)方面的特性:(1)功能完備性在當(dāng)前個(gè)人電腦廣泛普及的情形下,電腦端的軟件的數(shù)量規(guī)模和類(lèi)型復(fù)雜多樣,但 通常這些軟件在設(shè)計(jì)開(kāi)發(fā)時(shí),都需要考慮到一個(gè)最核心的問(wèn)題,那就是軟件的功能完備 性,這是任何一款想要廣泛普及的應(yīng)用軟件必須完成的功能特性,也是軟件使用人員對(duì)軟件最基本的需求分析。根據(jù)對(duì)音樂(lè)播放器當(dāng)前研究現(xiàn)狀的分析和探討,結(jié)合實(shí)際生活 當(dāng)中音樂(lè)播放器的特點(diǎn)和所需要完成的功能,可以知道,音樂(lè)播放器的設(shè)計(jì)開(kāi)發(fā)過(guò)程當(dāng)中,應(yīng)用考慮到音樂(lè)播放器需要實(shí)現(xiàn)的所有的功能集合, 在進(jìn)行功能劃分的過(guò)程當(dāng)中, 可以采用模塊化的功能設(shè)計(jì)思想,對(duì)功能的劃分盡可能的細(xì)

38、致,做到不遺漏。例如音樂(lè) 播放器應(yīng)當(dāng)擁有的最基本的功能:播放音樂(lè),播放控制,音樂(lè)列表的顯示等。( 2) 穩(wěn)定性穩(wěn)定性是軟件設(shè)計(jì)中一項(xiàng)很重要的指標(biāo), 任何一款軟件都要擁有很好的穩(wěn)定性, 該軟件才能獲得良好的用戶(hù)體驗(yàn), 尤其對(duì)于娛樂(lè)性質(zhì)的應(yīng)用軟件來(lái)說(shuō), 用戶(hù)體驗(yàn)決定了基本上該軟件的生命力。 由于音樂(lè)播放器在電腦端安裝后即開(kāi)始使用, 其應(yīng)用將是長(zhǎng)期的 和持續(xù)的。因此,穩(wěn)定性在軟件的設(shè)計(jì)實(shí)現(xiàn)中,顯得尤為重要。( 3) 易維護(hù)性音樂(lè)播放器的使用是一個(gè)長(zhǎng)期性的過(guò)程, 無(wú)論是在主機(jī)系統(tǒng)層面上的故障還是音樂(lè)播放器軟件本身的故障, 都可能影響到軟件的使用和用戶(hù)體驗(yàn), 因此, 需要考慮到軟件的易維護(hù)性能。 在音樂(lè)

39、播放器出現(xiàn)可能的故障問(wèn)題的同時(shí), 開(kāi)發(fā)人員能夠及時(shí)發(fā)現(xiàn)軟件的問(wèn)題,針對(duì)出現(xiàn)的問(wèn)題進(jìn)行維護(hù),彌補(bǔ)軟件的漏洞。( 4) 可擴(kuò)展性可擴(kuò)展性對(duì)于當(dāng)今的互聯(lián)網(wǎng)應(yīng)用軟件來(lái)說(shuō), 同樣是一個(gè)十分重要的特性。 隨著人們消費(fèi)水平的提升和生活興趣的廣泛拓展, 對(duì)于互聯(lián)網(wǎng)軟件應(yīng)用的功能以及其跟隨互聯(lián)網(wǎng)熱點(diǎn)問(wèn)題的追蹤能力十分看重,而對(duì)于音樂(lè)播放器來(lái)說(shuō),能夠經(jīng)常性的進(jìn)行版本升級(jí)、定期維護(hù)、 跟蹤時(shí)事和流行音樂(lè)的更新, 對(duì)于用戶(hù)來(lái)說(shuō)無(wú)疑是具有很大的吸引力, 因此,該音樂(lè)播放器的開(kāi)發(fā)過(guò)程當(dāng)中,應(yīng)當(dāng)充分考慮到軟件的可擴(kuò)展性?;谝陨闲枨蠓治?, 根據(jù)對(duì)系統(tǒng)軟件的功能特點(diǎn)設(shè)計(jì), 本文對(duì)音樂(lè)播放器軟件設(shè)計(jì)開(kāi)發(fā)的具體細(xì)節(jié)作了詳細(xì)介紹。

40、3.3 軟件設(shè)計(jì)在系統(tǒng)設(shè)計(jì)階段, 主要考慮的方面是基于整個(gè)系統(tǒng)需要實(shí)現(xiàn)的功能, 對(duì)物業(yè)管理信息系統(tǒng)的整體架構(gòu)進(jìn)行科學(xué)合理的設(shè)計(jì), 使之有一定的規(guī)律可以遵循, 不至于進(jìn)行盲目的設(shè)計(jì)工作, 這對(duì)于后期的程序編碼和系統(tǒng)的來(lái)說(shuō)意義重大。 通過(guò)良好的系統(tǒng)架構(gòu)設(shè)計(jì),使得系統(tǒng)有了一個(gè)較好合適正確的數(shù)據(jù)流和控制流走向, 才能保證音樂(lè)播放器的工作過(guò)程正規(guī)有序, 讓用戶(hù)能夠體驗(yàn)到良好的軟件質(zhì)量。 為此, 本文在對(duì)音樂(lè)播放器軟件進(jìn)行軟件需求分析之后,針對(duì)需求分析的結(jié)果,對(duì)系統(tǒng)進(jìn)行了整體的架構(gòu)設(shè)計(jì),如圖 3-2所 示:圖3-2軟件模塊設(shè)計(jì)由上圖可以看出,本文所設(shè)計(jì)實(shí)現(xiàn)的音樂(lè)播放器軟件, 從軟件的架構(gòu)來(lái)看,主要包 括兩

41、個(gè)功能部分:軟件的歌曲播放部分和后臺(tái)數(shù)據(jù)的維護(hù)部分。 其中,歌曲播放部分主 要實(shí)現(xiàn)該軟件的主要功能,即選擇歌曲和播放歌曲;另一部分則是軟件的后臺(tái)音樂(lè)數(shù)據(jù) 的維護(hù),主要在軟件的程序代碼當(dāng)中實(shí)現(xiàn),主要包括歌曲信息管理,歌曲類(lèi)型信息管理, 作者信息管理和用戶(hù)信息管理。以上是對(duì)該音樂(lè)播放器軟件的整體工作架構(gòu)進(jìn)行的設(shè) 計(jì),該步驟是后續(xù)進(jìn)一步進(jìn)行系統(tǒng)功能實(shí)現(xiàn)的基礎(chǔ)。軟件功能實(shí)現(xiàn)進(jìn)入 21 世紀(jì)以來(lái),計(jì)算機(jī)技術(shù)飛速發(fā)展,它已深深融入到社會(huì)生活的方方面面,給人們的工作、 出行方式都帶來(lái)了翻天覆地的變化, 也為人們的日常娛樂(lè)方式帶來(lái)了廣泛的變化。 原本舊的計(jì)算機(jī)軟硬件設(shè)計(jì)已不能適應(yīng)這快節(jié)奏的生活需求, 也阻礙了

42、社會(huì)經(jīng)濟(jì)的發(fā)展。 越來(lái)越的人傾向于使用計(jì)算機(jī)技術(shù)來(lái)管理自己的工作和生活, 提高自己的工作質(zhì)量,同時(shí)也為生活帶來(lái)更廣泛的娛樂(lè)。本文在設(shè)計(jì)實(shí)現(xiàn)基于 Qt 的音樂(lè)播放器軟件的同時(shí),充分考慮了 Qt 的語(yǔ)言特性和開(kāi)發(fā)環(huán)境, 發(fā)揮了其在用戶(hù)界面應(yīng)用程序開(kāi)發(fā)當(dāng)中的優(yōu)勢(shì), 對(duì)音樂(lè)播放器軟件進(jìn)行了開(kāi)發(fā)。 根據(jù)前文對(duì)該音樂(lè)播放器軟件的需求分析, 以及對(duì)軟件的設(shè)計(jì)分析結(jié)果, 結(jié)合實(shí)際使用當(dāng)中可能使用到的軟件功能, 并采用了軟件工程中模塊化的開(kāi)發(fā)思想, 完成了該音樂(lè)播放器軟件的開(kāi)發(fā), 下面分別對(duì)軟件中重要的功能模塊的實(shí)現(xiàn)方法及實(shí)現(xiàn)效果進(jìn)行詳細(xì)的介紹和分析。4.1 軟件總體架構(gòu)通過(guò)在需求階段對(duì)系統(tǒng)的總體功能的分析,

43、我們得到了這個(gè)音樂(lè)播放器軟件的總體功能結(jié)構(gòu),其主要功能結(jié)構(gòu)圖如圖 3-4 所示,它應(yīng)包括三大基本功能模塊。(1) 選擇歌曲文件模塊:用戶(hù)可以方便的查詢(xún)環(huán)境當(dāng)中存在的歌曲列表信息,并找到滿意歌曲的位置和具體的歌曲內(nèi)容。 此外, 歌曲的具體信息可以該文件打開(kāi)窗口進(jìn)行更新和修改,以更好地符合實(shí)際用戶(hù)的需要。(2) 歌曲播放模塊:用戶(hù)根據(jù)所選擇的具體歌曲讓該軟件對(duì)歌曲進(jìn)行播放,并且可以實(shí)時(shí)查看歌曲的播放狀態(tài), 對(duì)歌曲的播放進(jìn)行更新和維護(hù), 可以及時(shí)處理一些特殊情況,如軟件的故障等問(wèn)題。(3) 播放狀態(tài)控制模塊:用戶(hù)可以查看成自己在歌曲播放過(guò)程中進(jìn)度情況,并可以隨時(shí)更改歌曲的播放進(jìn)度信息。4.2 軟件工

44、作流程整個(gè)軟件所設(shè)計(jì)的工作流程如下:( 1)開(kāi)始。首先,需要手動(dòng)打開(kāi)該軟件運(yùn)行,在Windows 環(huán)境下可以直接方便地打開(kāi)該音樂(lè)播放器軟件,而不需要任何事先的安裝與調(diào)試工作, 這也是該軟件的特點(diǎn)之 一,目的是實(shí)現(xiàn)方便快速的用戶(hù)操作體驗(yàn), 省略了許多復(fù)雜繁瑣的安裝和調(diào)試過(guò)程, 讓 軟件的工作運(yùn)行效率更高。(2)打開(kāi)文件查找歌曲。在該部分提供最簡(jiǎn)單方便的選擇文件功能,用戶(hù)需求使 用經(jīng)常在 Windows環(huán)境下采取的選擇文件窗口,對(duì)所需要的歌曲進(jìn)行選擇查找,查找 到目標(biāo)歌曲后可以點(diǎn)擊選中,讓軟件來(lái)進(jìn)行下一步運(yùn)行該歌曲。(3)播放歌曲。該部分是音樂(lè)播放器軟件最主要的功能部分,播放歌曲的功能實(shí)現(xiàn)需要相對(duì)

45、復(fù)雜的函數(shù)調(diào)用來(lái)實(shí)現(xiàn), 在軟件開(kāi)發(fā)的過(guò)程當(dāng)中有具體的實(shí)現(xiàn)代碼, 具體可 見(jiàn)后續(xù)章節(jié)。(4)控制歌曲播放進(jìn)度。該部分的實(shí)現(xiàn)是進(jìn)一步提高用戶(hù)的使用體驗(yàn),方便用戶(hù)根據(jù)其自身的需求對(duì)所播放的歌曲進(jìn)行進(jìn)度控制,可以暫停歌曲的播放,也可以繼續(xù)歌曲的播放功能。(5)結(jié)束。點(diǎn)擊關(guān)閉軟件,結(jié)束軟件運(yùn)行。以上整個(gè)過(guò)程的流程圖如下所示:打開(kāi)文件/ 查找歌曲/ 播放歌曲控制播放進(jìn)度結(jié)束圖4-1軟件工作流程4.3軟件功能實(shí)現(xiàn)軟件的總體開(kāi)發(fā)環(huán)境為 Windows 環(huán)境,具體使用的編程語(yǔ)言則是采用 C+ 編程語(yǔ) 言,在Qt Creator開(kāi)發(fā)平臺(tái)的環(huán)境下進(jìn)行軟件程序的編寫(xiě)。該平臺(tái)作為一個(gè)操作簡(jiǎn)便的開(kāi)發(fā)環(huán)境,其最大 的優(yōu)勢(shì)就

46、是對(duì)用戶(hù)界面應(yīng)用程序的開(kāi)發(fā),可以迅速的開(kāi)發(fā)出界面友好、功能完備的應(yīng)用程序,在良好的用戶(hù)界面的展示下,用戶(hù)會(huì)擁有更高的操作效率,同時(shí)在良好的用戶(hù)界面下還能夠?qū)崿F(xiàn)軟件應(yīng)當(dāng)實(shí)現(xiàn)的功能。 總之, 良好的界面與功能的結(jié)合是該軟件的一大優(yōu)勢(shì),基本上可以滿足大多數(shù)用戶(hù)的使用需求。本選題是基于 QT 的音樂(lè)播放器,包括音頻文件的添加與刪除,下一曲,上一曲,播放與暫停,播放模式,顯示歌詞等。具體功能如下: ( 1)播放狀態(tài)顯示:用戶(hù)界面能顯示正在被播放的歌曲的進(jìn)音樂(lè)播放器中刪除選定的歌曲;用戶(hù)能夠顯示正在被播放歌曲的音量; 用戶(hù)界面能夠顯示被播放歌曲的歌名。用戶(hù)界面能夠顯示歌詞和桌面歌詞( 2)播放控制:用戶(hù)能

47、夠控制正在被播放歌曲的進(jìn)度; 用戶(hù)能調(diào)節(jié)正在被播放歌曲的音量; 用戶(hù)能夠控制歌曲停止、暫停與播放; 用戶(hù)能夠切換上一首、下一首歌曲。( 3)列表中歌曲管理: 在歌曲列表中用戶(hù)能添加所需的歌曲文件的用戶(hù) 刪除該列表中的歌曲名。度,顯示歌曲的播放狀態(tài);刪除歌曲,從文件名, 并長(zhǎng)期保存在該列表中 ,直到( 4)核心播放控件:能夠打開(kāi)MP3文件,并將其解碼,然后啟動(dòng)音頻硬件播放歌曲。在軟件的代碼實(shí)現(xiàn)中, 本文根據(jù)需要實(shí)現(xiàn)的功能, 編寫(xiě)了相應(yīng)的代碼, 主要的代碼的函數(shù)名稱(chēng)和相應(yīng)的函數(shù)聲明在頭文件MainInteface.h中,具體如下:class MainInterface : public QWidg

48、etQ_OBJECTpublic:explicit MainInterface(QWidget *parent = 0); MainInterface();protected:void moveEvent( QMoveEvent * );void contextMenuEvent( QContextMenuEvent * );void wheelEvent( QWheelEvent * );void closeEvent( QCloseEvent * );void dragEnterEvent( QDragEnterEvent * );void dropEvent ( QDropEvent *

49、 );bool eventFilter( QObject *, QEvent * );private slots:void on_toolButton_open_clicked();void on_toolButton_List_clicked(bool checked);void on_toolButton_playpause_clicked();void on_toolButton_stop_clicked();void on_toolButton_next_clicked();void on_toolButton_previous_clicked();void on_toolButton

50、_lrcD_clicked( bool checked);void tableWidget_cellDoubleClicked( int row);void clearPlayList();void setPosition(int value);void positionChanged( qint64);void audioStateChanged( QMediaPlayer:State state );void iconActivated( QSystemTrayIcon:ActivationReason reason);void audiolistPositionChanged( int

51、index);private:void readSettings();void writeSettings();void loadCurrentLrc();void creatActions();private:Ui:MainInterface *ui;QTextEdit *m_text;QSlider *m_seekSlider;QSlider *m_volSlider;QMediaPlayer *m_audio;QMediaPlaylist *m_audioList;MusicList *m_playList;LrcInterface *m_lrc;QIcon * iconplay;QIc

52、on * iconpause;QAction * play , *stop , *open , *sound , *exit , *remove ;QSystemTrayIcon *trayicon;QMenu *trayiconMenu;bool isTouched;class LrcInterface : public QLabelQ_OBJECTpublic:explicit LrcInterface(QWidget *parent = 0);void setTime(int num)time = num;void setLrcWidth();protected:void mousePr

53、essEven(Qt MouseEvent *);void mouseMoveEven(tQMouseEvent *);void contextMenuEvent(QContextMenuEvent *ev);void paintEvent(QPaintEvent *);private slots:void timeout();public:QAction *exit;QTimer *timer;private:QPoint dragPosition;int time;qreal length;qreal lrcWidth;namespace Ui class MusicList;class

54、MusicList : public QWidgetQ_OBJECTpublic:explicit MusicList(QWidget *parent = 0); MusicList();void listReadSettings();void listWriteSettings();void clearList();protected:void changeEven(tQEvent *e);void closeEvent(QCloseEvent *);void moveEvent(QMoveEvent *);signals:void listClose();public:Ui:MusicLi

55、st *ui;4.3.1 播放歌曲模塊作為該軟件最主要, 也是用戶(hù)使用的最多的功能模塊, 歌曲的播放功能決定了該軟件能否為用戶(hù)所廣泛的接受, 現(xiàn)代化的軟件開(kāi)發(fā)過(guò)程中, 最為主要的特點(diǎn)之一, 倒是能夠?qū)崿F(xiàn)以用戶(hù)需求為目標(biāo)的軟件的核心功能,核心功能的實(shí)現(xiàn)決定了軟件的后續(xù)生命力。 因此, 該音樂(lè)播放器在設(shè)計(jì)開(kāi)發(fā)過(guò)程當(dāng)中, 把最主要的精力放在了歌曲的播放控制模塊,通過(guò)大量的相關(guān)函數(shù)的編寫(xiě)和調(diào)用,與Windows 環(huán)境下的音頻服務(wù)相互交互的過(guò)程中,實(shí)現(xiàn)音樂(lè)播放功能。首先進(jìn)入該軟件后, 軟件的后臺(tái)代碼部分會(huì)自動(dòng)進(jìn)入軟件的主函數(shù), 主函數(shù)是軟件運(yùn)行的入口函數(shù),該部分的主函數(shù)的具體實(shí)現(xiàn)代碼如下:int mai

56、n(int argc, char *argv)QApplication a(argc, argv);MainInterface w;w.show();return a.exec();播放歌曲的時(shí)候需要首先對(duì)歌曲目錄進(jìn)行選擇, 即打開(kāi)文件窗口選擇歌曲文件的位置,該部分具體的實(shí)現(xiàn)代碼如下:void MainInterface:on_toolButton_open_clicked()QStringList urls = QFileDialog:getOpenFileNames(this,tr("openthe mp3 file"), QStandardPaths:writableLocation(QStandardPaths:MusicLocation);if(urls.isEmpty() return;int index = m_playList->ui->tableWidget->rowCount();for(int i=0; i<urls.length(); i+) QMediaContent con(urls.at(i).trimmed();m_audioList->addMedia(con);QString fil

溫馨提示

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

評(píng)論

0/150

提交評(píng)論