基于Android音樂(lè)播放器的設(shè)計(jì)及實(shí)現(xiàn)_第1頁(yè)
基于Android音樂(lè)播放器的設(shè)計(jì)及實(shí)現(xiàn)_第2頁(yè)
基于Android音樂(lè)播放器的設(shè)計(jì)及實(shí)現(xiàn)_第3頁(yè)
基于Android音樂(lè)播放器的設(shè)計(jì)及實(shí)現(xiàn)_第4頁(yè)
基于Android音樂(lè)播放器的設(shè)計(jì)及實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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、-PAGE . z- - - .總結(jié)資料濱江學(xué)院?移動(dòng)通信程序設(shè)計(jì)?課程設(shè)計(jì) 題 目 基于Android系統(tǒng)的音樂(lè)播放器 院 系 濱江學(xué)院 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生 王 兵 學(xué) 號(hào) 20212308057二 一 四 年 六 月 十 日-. z摘要隨著生活水平的提高,娛樂(lè)已成為非常主流的話(huà)題,人們不僅需要通過(guò)音樂(lè)冶情操,而且越來(lái)越多的人傾向于使用音樂(lè)、視頻等娛樂(lè)和放松自己,這大大促進(jìn)了媒體軟件的開(kāi)展.本文旨在介紹研究常用數(shù)字音頻編碼和解碼的相關(guān)知識(shí),并結(jié)合VS2021編寫(xiě)多功能音樂(lè)播放器,了解音樂(lè)播放器功能的實(shí)現(xiàn),掌握開(kāi)發(fā)音樂(lè)播放器所需的相關(guān)知識(shí),采用了面向?qū)ο筌浖こ谭椒ǎ溟_(kāi)發(fā)主要包括

2、應(yīng)用程序界面設(shè)計(jì)和后臺(tái)代碼運(yùn)行兩個(gè)方面,實(shí)現(xiàn)了多功能音樂(lè)播放器在計(jì)算機(jī)上的應(yīng)用,可以在很大程度上滿(mǎn)足用戶(hù)的需求.該系統(tǒng)主要具備:音樂(lè)播放控制、音樂(lè)文件控制、音量控制、下載控制、歌詞控制、進(jìn)度控制、音樂(lè)剪輯等功能模塊。關(guān)鍵字:音樂(lè)播放器,音頻編碼格式,TechSmith Screen Capture Codec,F(xiàn)Fmpeg,C*,Visual Studio 2021目 錄 TOC h z t 標(biāo)題 1,2,1級(jí),1,結(jié)尾,1 HYPERLINK l _Toc3569900901前言 PAGEREF _Toc356990090 h - 4 -HYPERLINK l _Toc3569900911.

3、1選題的背景及意義 PAGEREF _Toc356990091 h - 4 -HYPERLINK l _Toc3569900921.2網(wǎng)絡(luò)流行音樂(lè)播放器簡(jiǎn)介 PAGEREF _Toc356990092 h - 4 -HYPERLINK l _Toc3569900932系統(tǒng)相關(guān)技術(shù)及開(kāi)發(fā)平臺(tái)介紹 PAGEREF _Toc356990093 h - 5 -HYPERLINK l _Toc3569900942.1開(kāi)發(fā)應(yīng)用技術(shù)介紹 PAGEREF _Toc356990094 h - 5 -HYPERLINK l _Toc3569900952.2開(kāi)發(fā)及運(yùn)行壞境 PAGEREF _Toc356990095

4、 h - 7 -HYPERLINK l _Toc3569900963系統(tǒng)的分析 PAGEREF _Toc356990096 h - 8 -HYPERLINK l _Toc3569900973.1可行性分析 PAGEREF _Toc356990097 h - 8 -HYPERLINK l _Toc3569900983.2常見(jiàn)的幾種音頻格式及其特點(diǎn) PAGEREF _Toc356990098 h - 9 -HYPERLINK l _Toc3569900993.3需求分析 PAGEREF _Toc356990099 h - 10 -HYPERLINK l _Toc3569901004系統(tǒng)設(shè)計(jì) PAG

5、EREF _Toc356990100 h - 12 -HYPERLINK l _Toc3569901014.1系統(tǒng)概要設(shè)計(jì) PAGEREF _Toc356990101 h - 12 -HYPERLINK l _Toc3569901024.2系統(tǒng)功能設(shè)計(jì)及描述 PAGEREF _Toc356990102 h - 12 -HYPERLINK l _Toc3569901035系統(tǒng)功能實(shí)現(xiàn) PAGEREF _Toc356990103 h - 14 -HYPERLINK l _Toc3569901045.1歌曲添加模塊 PAGEREF _Toc356990104 h - 15 -HYPERLINK l

6、_Toc3569901055.2歌曲列表模塊 PAGEREF _Toc356990105 h - 19 -HYPERLINK l _Toc3569901065.3播放控制模塊 PAGEREF _Toc356990106 h - 20 -HYPERLINK l _Toc3569901075.4音量控制模塊 PAGEREF _Toc356990107 h - 23 -HYPERLINK l _Toc3569901085.5進(jìn)度控制模塊 PAGEREF _Toc356990108 h - 24 -HYPERLINK l _Toc3569901095.6滾動(dòng)字幕模塊 PAGEREF _Toc35699

7、0109 h - 24 -HYPERLINK l _Toc3569901105.7歌曲下載模塊 PAGEREF _Toc356990110 h - 29 -HYPERLINK l _Toc3569901115.8歌曲剪輯模塊 PAGEREF _Toc356990111 h - 31 -HYPERLINK l _Toc356990112結(jié)論 PAGEREF _Toc356990112 h - 35 -HYPERLINK l _Toc356990113參考文獻(xiàn) PAGEREF _Toc356990113 h - 36 -HYPERLINK l _Toc356990114致 PAGEREF _Toc

8、356990114 h - 37 -1前言1.1選題的背景及意義音樂(lè)是情感的藝術(shù),美妙動(dòng)聽(tīng)的音樂(lè)來(lái)源于情感,又潛移默化地影響情感,讓我們進(jìn)入瑰麗多彩的虛化與現(xiàn)實(shí)的意境之中。向上追溯百年或千年,直至最原始的音樂(lè)誕生之初,我相信音樂(lè)是為了傾訴而不是表現(xiàn),是自然的流露而不是技巧的夸,是自我的沉醉而不是別人的掌聲。因?yàn)閻?ài)與感動(dòng),因?yàn)樯膱A滿(mǎn)與缺憾,因?yàn)樗枷氲撵`動(dòng)與創(chuàng)造。所以音樂(lè)不單在樂(lè)譜上,更在我們的心中。眾所周知任何格式的音樂(lè)都要通過(guò)音樂(lè)播放軟件播放,則音樂(lè)播放軟件是通過(guò)什么樣的原理實(shí)現(xiàn)音樂(lè)的播放的呢.音樂(lè)播放器就是音頻解碼器的可視化操作界面,其實(shí)質(zhì)是針對(duì)各種音頻編碼格式的解碼器。例如APE格式調(diào)

9、用的是Monkeys Audio解碼器,F(xiàn)LAC格式調(diào)用的是FLAC解碼器,MP3調(diào)用的是lame解碼器。大局部音樂(lè)播放器都支持多種音樂(lè)格式的文件,這是因?yàn)檫@些播放器將不同的音頻解碼器打包起來(lái),并制作統(tǒng)一的播放界面,從而讓使用者能夠方便地播放和聆聽(tīng)各種音樂(lè)。伴隨著改革開(kāi)放人們的生活水平普遍提高如今音樂(lè)已成為越來(lái)越多人的心靈寄托。隨著因特網(wǎng)在我國(guó)的普及隨之而來(lái)的是各式各樣的播放器軟件。盡管未來(lái)的音樂(lè)播放器將具備各種豐富多彩的功能,但作為一款多媒體軟件,音頻應(yīng)用才是最根本的,也是最能決定獲取用戶(hù)數(shù)量的因素?;谏鲜龇治鲆糍|(zhì)高,外形美觀,小巧且功能強(qiáng)大是未來(lái)播放器開(kāi)展的主流趨勢(shì)。作為一個(gè)音樂(lè)愛(ài)好者兼

10、軟件工程專(zhuān)業(yè)的一員假設(shè)能編寫(xiě)一款小巧功能強(qiáng)大的音樂(lè)播放器無(wú)疑是一件很有成就感的事情。1.2網(wǎng)絡(luò)流行音樂(lè)播放器簡(jiǎn)介本小節(jié)舉例介紹目前網(wǎng)絡(luò)上流行的幾款音樂(lè)播放器,比方國(guó)產(chǎn)千千靜聽(tīng),酷狗音樂(lè)等。比擬分析了它們各自特有的功能,此外還集中介紹了常見(jiàn)的幾種編碼格式以及它們各自的特點(diǎn)。1.2.1千千靜聽(tīng)千千靜聽(tīng)是一款專(zhuān)為用戶(hù)定制的全新一代的免費(fèi)聽(tīng)歌下載音樂(lè)播放器軟件。提供百萬(wàn)首歌曲免費(fèi)試聽(tīng)下載,擁有最新、最流行的歌曲,提供第一時(shí)間音樂(lè)資訊;超高品質(zhì)(320kbps)的音樂(lè)歌曲下載,給耳朵更優(yōu)質(zhì)的享受;超炫的智能語(yǔ)音搜歌功能讓聽(tīng)歌更加快捷;免費(fèi)的手機(jī)鈴聲歌曲下載;輕松拖拽歌詞,保持歌詞同步,支持邊聽(tīng)邊唱;支持

11、在線(xiàn)播放下載;流量限額提醒功能。軟件特色:1、高精度音質(zhì),完美復(fù)原聽(tīng)覺(jué) ;2、在線(xiàn)自動(dòng)下載歌詞,卡拉OK式同步顯示 ;3、軟件小、運(yùn)行快、支持眾多插件,自由編輯歌詞,由你做主;4、自由轉(zhuǎn)換MP3、WMA,APE,WAV等多種音頻格式 ,批量修改歌曲標(biāo)簽信息;5、個(gè)性化皮膚,多種視覺(jué)效果享受永遠(yuǎn)免費(fèi)。1.2.2酷狗音樂(lè)酷狗音樂(lè)是中國(guó)領(lǐng)先的數(shù)字音樂(lè)交互效勞提供商,互聯(lián)網(wǎng)技術(shù)創(chuàng)新的領(lǐng)軍企業(yè),致力于為互聯(lián)網(wǎng)用戶(hù)和數(shù)字音樂(lè)產(chǎn)業(yè)開(kāi)展提供最正確的解決方案,公司的使命是成為亞太地區(qū)最大的數(shù)字音樂(lè)銷(xiāo)售推廣企業(yè)。自公司創(chuàng)立以來(lái),一直在數(shù)字音樂(lè)開(kāi)展上大膽嘗試,先后與幾十家唱片公司、管理機(jī)構(gòu)合作探索開(kāi)展,積累了數(shù)萬(wàn)首

12、數(shù)字音樂(lè),并在推動(dòng)廣圍的跨行業(yè)、跨平臺(tái)合作上做出努力,在艱巨的全球音樂(lè)數(shù)字化進(jìn)程中做出自身的奉獻(xiàn)。全球最受歡送的免費(fèi)中文播放軟件,流行音樂(lè)搜索平臺(tái)。軟件特色:1、迷你界面、界面更酷、絢麗流行;保持了Windows Vista和*P下的完美表現(xiàn),讓人耳目一新;2、卡拉OK酷狗獨(dú)創(chuàng)“卡拉OK歌詞顯示,多種模式,邊聽(tīng)邊唱,讓你聽(tīng)歌更好玩;3、支持本地音樂(lè)播放完美音質(zhì),支持所有的音頻文件,本地文件拖放,同時(shí)支持網(wǎng)絡(luò)高速下載和本地播放;4、超強(qiáng)搜索和下載優(yōu)化歌曲搜索引擎,提高搜索準(zhǔn)確度;智能化節(jié)約帶寬,可關(guān)閉網(wǎng)絡(luò)功能;5、流行音樂(lè)資訊酷狗榜單家族、狗友推薦、酷吧、狗窩,最新流行音樂(lè)一網(wǎng)打盡,好聽(tīng)的音樂(lè)來(lái)

13、“找你;6、個(gè)性化手機(jī)炫鈴DIY,讓擁有揚(yáng)個(gè)性的鈴聲7、音頻格式我選擇我的歌曲我制作,音質(zhì)音效我決定8、收音機(jī)動(dòng)感音樂(lè)識(shí)別體驗(yàn)精選多家電臺(tái),收聽(tīng)全球風(fēng)云變化,更能識(shí)別電臺(tái)中的音樂(lè)。2系統(tǒng)相關(guān)技術(shù)及開(kāi)發(fā)平臺(tái)介紹本系統(tǒng)是采用面向?qū)ο蟮能浖_(kāi)發(fā)方法,基于微軟的Visual Studio .Net 開(kāi)發(fā)平臺(tái),以C*作為本系統(tǒng)的開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn)音樂(lè)播放器預(yù)定的需求功能。2.1開(kāi)發(fā)應(yīng)用技術(shù)介紹2.1.1TechSmith Screen Capture Codec簡(jiǎn)介T(mén)echSmith Screen Capture Codec是TechSmith公司開(kāi)發(fā)的Camtasia Studio的一個(gè)組件,用于壓縮Cam

14、tasia Recorder中的視頻文件,最大的優(yōu)點(diǎn)是可以保證圖像的質(zhì)量,截取的屏幕經(jīng)過(guò)屢次壓縮,還能保證高質(zhì)量。 比傳統(tǒng)的壓縮方式相比,優(yōu)勢(shì)十清楚顯。 Camtasia Studio是TechSmith旗下一款專(zhuān)門(mén)錄制屏幕動(dòng)作的工具,無(wú)論在何種顏色模式下它都能輕松地對(duì)屏幕動(dòng)作進(jìn)展記錄,包括聲音、圖像、鼠標(biāo)的移動(dòng)軌跡等。此外,它還能夠?qū)σ纛l片段進(jìn)展編輯、壓縮、剪接從而實(shí)現(xiàn)多種音效的播放。它還能輸出包括Flash(SWF/FLV)、AVI、WMV、M4V、CAMV、MOV、RM、GIF動(dòng)畫(huà)等多種常見(jiàn)格式,是制作視頻演示的絕佳工具。其實(shí)Camtasia Studio已不僅僅是一個(gè)錄屏工具了,它包括

15、了5個(gè)組件:Camtasia錄像器、菜單制作器、音頻編輯器、劇場(chǎng)及播放器。本播放器在運(yùn)行之前需要安裝TechSmith Screen Capture Codec組件,此組件會(huì)和系統(tǒng)一起打包發(fā)行,用戶(hù)也可以自己從網(wǎng)上下載更高版本的組件,只有安裝此組件才能實(shí)現(xiàn)播放器中的歌詞剪切功能。2.1.2FFmpeg簡(jiǎn)介FFmpeg在Linu*平臺(tái)下開(kāi)發(fā),但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運(yùn)行,包括Windows、Mac OS *等。這個(gè)工程最早由Fabrice Bellard發(fā)起,現(xiàn)在由Michael Niedermayer維護(hù)。許多FFmpeg的開(kāi)發(fā)人員都來(lái)自MPlayer工程,而且當(dāng)前FFmpeg也

16、是放在MPlayer工程組的效勞器上。工程的名稱(chēng)來(lái)自MPEG視頻編碼標(biāo)準(zhǔn),前面的FF代表Fast Forward。使用本播放器如果要對(duì)flv格式的文件進(jìn)展播放則要安裝FFmpeg。2.1.3Visual Studio .Net集成開(kāi)發(fā)環(huán)境簡(jiǎn)介.NET平臺(tái)為創(chuàng)立新一代分布式Web應(yīng)用提供了所有工具和技術(shù)表示技術(shù)、構(gòu)件技術(shù)和數(shù)據(jù)庫(kù)技術(shù)。.NET平臺(tái)支持標(biāo)準(zhǔn)的Internet協(xié)議,包括HTTP超文本傳輸協(xié)議、*ML可擴(kuò)展標(biāo)記語(yǔ)言和SOAP簡(jiǎn)單對(duì)象協(xié)議等,從而實(shí)現(xiàn)了異構(gòu)系統(tǒng)間應(yīng)用程序的集成和通信,即用戶(hù)和供給商可將在此平臺(tái)上開(kāi)發(fā)的產(chǎn)品和效勞無(wú)縫地嵌入自身的業(yè)務(wù)進(jìn)程和日常活動(dòng)的信息架構(gòu)中。.NET平臺(tái)建

17、立在開(kāi)放系統(tǒng)構(gòu)造根底之上,集Microsoft在軟件領(lǐng)域的主要技術(shù)成就于一身。.NET平臺(tái)包括一下4種核心技術(shù):.NET Framework、.NET企業(yè)效勞器、構(gòu)件模塊效勞和Visual Studio .NET。.NET Framework是.NET平臺(tái)核心中的核心,它為.NET平臺(tái)下應(yīng)用程序的運(yùn)行提供根本框架,如果把Windows操作系統(tǒng)比作一幢摩天大廈的地基,則.NET Framework就是摩天大廈中由鋼筋和混凝土搭成的框架。.NET企業(yè)效勞器是Microsoft為企事業(yè)單位提供的技術(shù)效勞中的一局部,它包括Microsoft BizTalk Server、Microsoft merce

18、 Server、Host Integration Server、E*change Server、SQL Server等技術(shù)的開(kāi)發(fā)工具包。構(gòu)建模塊效勞主要是Microsoft提供的+組件效勞和*ML Web效勞技術(shù),利用構(gòu)建模塊效勞開(kāi)發(fā)應(yīng)用程序模塊,可以迅速地組裝一個(gè)功能完備的軟件。Visual Studio .NET是.NET平臺(tái)的主要開(kāi)發(fā)工具,由于.NET平臺(tái)是建立在開(kāi)放系統(tǒng)構(gòu)造根底之上的,因此應(yīng)用程序開(kāi)發(fā)人員也可以使用其它開(kāi)發(fā)工具。2.1.4C*語(yǔ)言簡(jiǎn)介C*(*原為音樂(lè)標(biāo)記,讀Sharp)是一種面向?qū)ο蟮木幊陶Z(yǔ)言,主要用于開(kāi)發(fā)可以運(yùn)行在.NET平臺(tái)上的應(yīng)用程序。C*語(yǔ)言是微軟公司開(kāi)發(fā)的基于

19、.NET Framework的一種編程語(yǔ)言,它繼承了C/C+優(yōu)良傳統(tǒng),又借鑒了Java的很多特點(diǎn)。微軟對(duì)C*的定義是:“C*是從C和C+派生出來(lái)的一種簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖?lèi)型平安的編程語(yǔ)言。C*主要是從C/C+編程語(yǔ)言家族移植過(guò)來(lái)的,C和C+的程序員能夠很快熟悉它。C*試圖結(jié)合Visual Basic的快速開(kāi)發(fā)能力和C+的強(qiáng)大靈活的能力。2C*是2000年6月微軟公司發(fā)布的一種全新編程語(yǔ)言,是由Anders Hejlsberg和他的微軟開(kāi)發(fā)團(tuán)隊(duì)所設(shè)計(jì),具體如下特點(diǎn):通用,支持跨平臺(tái)。C*程序的客戶(hù)端可以運(yùn)行在不同類(lèi)型的客戶(hù)端上,如PDA、手機(jī)等PC裝置。簡(jiǎn)單,主要表達(dá)在垃圾收集、指代等特性上

20、。垃圾收集機(jī)制將減輕開(kāi)發(fā)人員對(duì)存的管理負(fù)擔(dān),而指代功能更是可以讓開(kāi)發(fā)者不經(jīng)過(guò)部類(lèi)就調(diào)用函數(shù)。利用C*的這些功能,可以使開(kāi)發(fā)者通過(guò)較少的代碼來(lái)實(shí)現(xiàn)更強(qiáng)大的應(yīng)用程序,并且能夠更好地防止錯(cuò)誤發(fā)生,從而縮短了應(yīng)用系統(tǒng)的開(kāi)發(fā)周期。面向?qū)ο笤O(shè)計(jì),C*具有封裝、繼承和多態(tài)等面向?qū)ο蟪绦蛘Z(yǔ)言的特征。與Web應(yīng)用嚴(yán)密的結(jié)合,C*支持絕大多數(shù)的Web標(biāo)準(zhǔn),如HTML、*ML、SOAP等。這是C*最大的特點(diǎn),使用它可以輕松開(kāi)發(fā)各種企業(yè)級(jí)應(yīng)用平臺(tái)。平安性機(jī)制,消除軟件開(kāi)發(fā)中常見(jiàn)錯(cuò)誤如語(yǔ)法錯(cuò)誤,.NET提供的垃圾回收器能夠幫助開(kāi)發(fā)者有效的管理存資源。兼容性,C*遵循.NET的公共語(yǔ)言規(guī)CLS,能夠保證與其它語(yǔ)言開(kāi)發(fā)組件

21、兼容。靈活的版本處理技術(shù),C*在語(yǔ)言本身置了版本控制功能,開(kāi)發(fā)人員可以更加容易地開(kāi)發(fā)和維護(hù)。C*提供了完善的錯(cuò)誤和異常觸發(fā)機(jī)制。2.2開(kāi)發(fā)及運(yùn)行壞境硬件平臺(tái):CPU奔騰雙核 (主頻2.0GHz)存1G32位PC機(jī)160G硬盤(pán)軟件平臺(tái):操作系統(tǒng):Windows *P Win7Win8開(kāi)發(fā)工具:Visual Studio 2021。本軟件占用系統(tǒng)空間小,能滿(mǎn)足用戶(hù)對(duì)常見(jiàn)音頻格式文件的播放要求,還具有歌曲、歌詞下載等功能,界面美觀交互性好,易于用戶(hù)理解操作,且不依賴(lài)于其它軟件,消耗資源少易維護(hù),程序有較好的強(qiáng)健性和正確性。運(yùn)行該軟件所需的壞境配置不高,能滿(mǎn)足絕大多數(shù)用戶(hù)的需求。3系統(tǒng)的分析3.1可行

22、性分析可行性研究(feasibility study)的目的,是弄清楚待開(kāi)發(fā)的工程是不是可能實(shí)現(xiàn)和值得進(jìn)展,通常由系統(tǒng)分析員完成,并需寫(xiě)出可行性論證報(bào)告。如結(jié)論認(rèn)為可行,即可制定工程實(shí)施方案,同時(shí)開(kāi)場(chǎng)軟件開(kāi)發(fā);如結(jié)論認(rèn)為不可行,則應(yīng)提出終止該工程的建議??尚行哉撟C其實(shí)是在高層次上進(jìn)展的一次大大簡(jiǎn)化了的需求分析與設(shè)計(jì)。但它的目的不是去解決用戶(hù)提出的問(wèn)題,僅是確定這項(xiàng)開(kāi)發(fā)是否值得進(jìn)展,分析它存在哪些風(fēng)險(xiǎn)。換句話(huà)來(lái)說(shuō),在投入大量精力前研究成功的可能性,減小可能出現(xiàn)的風(fēng)險(xiǎn)。即使研究的結(jié)論是不值得進(jìn)展,所花的精力也并不浪費(fèi),因?yàn)樗乐沽艘淮胃蟮睦速M(fèi)。下面我們將根據(jù)本系統(tǒng)的特點(diǎn)具體描述以下可行性分析。3

23、3.1.1 經(jīng)濟(jì)可行性開(kāi)發(fā)一個(gè)基于計(jì)算機(jī)的系統(tǒng)主要是為了獲取較好的經(jīng)濟(jì)效益和社會(huì)效益。因此對(duì)待開(kāi)發(fā)系統(tǒng)的經(jīng)濟(jì)可行性論證就成為可行性研究的重要容。本錢(qián)-效益分析可用于評(píng)估系統(tǒng)的經(jīng)濟(jì)合理性,給出系統(tǒng)開(kāi)發(fā)的本錢(qián)估算,并將估算的本錢(qián)與獲得的利潤(rùn)進(jìn)展比對(duì),從經(jīng)濟(jì)的角度論證待開(kāi)發(fā)系統(tǒng)是否可行。一般來(lái)說(shuō),基于計(jì)算機(jī)系統(tǒng)的本錢(qián)主要由4局部組成:購(gòu)置并安裝軟硬件及有關(guān)設(shè)備的費(fèi)用。系統(tǒng)開(kāi)發(fā)費(fèi)用。系統(tǒng)安裝、運(yùn)行和維護(hù)費(fèi)用。人員培訓(xùn)費(fèi)用。結(jié)合畢業(yè)設(shè)計(jì)的整個(gè)開(kāi)發(fā)過(guò)程可知開(kāi)發(fā)音樂(lè)播放器所需的全部軟件平臺(tái)都是免費(fèi)的,所以在經(jīng)濟(jì)上是完全可行的。3.1.2 技術(shù)可行性技術(shù)可行性是可行性研究的關(guān)鍵容。由于系統(tǒng)分析和定義過(guò)程與系統(tǒng)

24、技術(shù)可行性評(píng)估過(guò)程同時(shí)進(jìn)展,此時(shí)系統(tǒng)的功能、性能和目標(biāo)的不確定性會(huì)給技術(shù)可行性論證帶來(lái)許多困難。因此,技術(shù)可行性研究往往是系統(tǒng)開(kāi)發(fā)過(guò)程中難度最大的工作。該音樂(lè)播放器是用C*語(yǔ)音開(kāi)發(fā)的,調(diào)試比擬簡(jiǎn)單,所需的計(jì)算機(jī)硬件配置要求不高,一般PC機(jī)完全能滿(mǎn)足開(kāi)發(fā)要求。軟件方面:基于微軟.net開(kāi)發(fā)平臺(tái)使用C*面向?qū)ο蟮木幊陶Z(yǔ)音,它開(kāi)發(fā)速度快,簡(jiǎn)單易用,技術(shù)成熟,軟件也容易從網(wǎng)上獲得,完全能滿(mǎn)足開(kāi)發(fā)需求。3.1.3 法理可行性法律可行性主要研究新系統(tǒng)的開(kāi)發(fā)和使用是否會(huì)侵犯他人權(quán)益,是否觸犯了國(guó)家的法律法規(guī)。本次的畢業(yè)設(shè)計(jì)是由本人獨(dú)立完成,開(kāi)發(fā)的系統(tǒng)不會(huì)侵犯任何人的權(quán)益,所用的軟件都是通過(guò)合法途徑獲取,因此

25、完全符合法律法規(guī)。綜上所述,本系統(tǒng)的開(kāi)發(fā)從經(jīng)濟(jì)上、技術(shù)上、法律上都是完全可行的。3.2常見(jiàn)的幾種音頻格式及其特點(diǎn)MP3格式:MP3的全稱(chēng)是Moving Picture E*perts Group Audio Layer 。MP3是Fraunhofer-IIS研究所的出色成果。在MP3出現(xiàn)前,以有損方式進(jìn)展音頻編碼最好的效果能夠壓縮到4:1。而強(qiáng)大的MP3可以實(shí)現(xiàn)12:1的高壓縮比,正是因?yàn)檫@種性能的巨大提升,并且在實(shí)現(xiàn)高壓縮比的同時(shí)還能夠保持較好的音質(zhì),所以使得MP3迅速地流行起來(lái)。MP3是世界上第一個(gè)實(shí)用化的有損壓縮編碼方案,幾乎所有的播放軟件都支持它,也曾今產(chǎn)生了許多第三方的編碼工具。MP

26、3編碼質(zhì)量分為:固定碼率(CBR),平均碼率(ABR)和動(dòng)態(tài)碼率(VBR)。4特點(diǎn):音質(zhì)好,壓縮比比擬高,被大量軟件和硬件支持,應(yīng)用廣泛。WMA格式:WMA就是Windows Media Audio編碼后的文件,它是微軟公司推出的與MP3格式齊名的一種新的音樂(lè)格式。WMA在壓縮比和音質(zhì)方面都超過(guò)了MP3,更是遠(yuǎn)勝于RA(Real Audio),即使在較低的采樣頻率下也能產(chǎn)生較好的音質(zhì)。WMA針對(duì)的不是單機(jī)市場(chǎng),而是網(wǎng)絡(luò)!競(jìng)爭(zhēng)對(duì)手就是網(wǎng)絡(luò)媒體市場(chǎng)中著名的Real Networks。WMA格式有非常高的壓縮率,一般為1:18,因此它的文件所占空間比相應(yīng)的MP3文件少一半。這是通過(guò)提高音質(zhì)、減少數(shù)據(jù)

27、流量的方法來(lái)實(shí)現(xiàn)更高的壓縮率的。此外它還有很強(qiáng)的防盜版功能。特點(diǎn):低碼率下的音質(zhì)表現(xiàn)難有對(duì)手。4WAV格式:WAV是微軟Windows系統(tǒng)本身自帶的音頻格式,因?yàn)閃indows系統(tǒng)的普及性,此格式已經(jīng)成了當(dāng)前最主流的音頻格式之一。WAV文件里面存放的每一塊數(shù)據(jù)都有自己獨(dú)立的標(biāo)識(shí),通過(guò)這些標(biāo)識(shí)可以告訴用戶(hù)終究是什么數(shù)據(jù)。WAV格式的設(shè)計(jì)非常靈活,該格式本身與任何媒體數(shù)據(jù)都不沖突,只要有軟件支持,我們甚至可以在WAV格式里面存放圖像。在Windows平臺(tái)上,通過(guò)ACM構(gòu)造及相應(yīng)的驅(qū)動(dòng)程序,例如CODEC編碼/解碼器,可以在WAV文件中存放超過(guò)20種的壓縮格式,比方ADPCM、GSM、CCITT G

28、.711、G.723和MP3等。4特點(diǎn):音質(zhì)非常好,被大量軟件所支持。RA格式:RA格式是Real Networks公司所開(kāi)發(fā)的一種新型流式音頻Real Audio文件格式。這是網(wǎng)上接觸得非常多的一種格式,大局部音樂(lè)的在線(xiàn)試聽(tīng)都采用了Real Audio,這種格式完全針對(duì)的就是網(wǎng)絡(luò)上的媒體市場(chǎng),支持非常豐富的功能。最大的優(yōu)點(diǎn)就是這種格式可以根據(jù)聽(tīng)眾的帶寬來(lái)控制自己的碼率,在保證流暢的前提下盡可能提高音質(zhì)。4特點(diǎn):碼率可控,支持多種音頻編碼,可邊讀邊放。3.3需求分析軟件需指用戶(hù)對(duì)目標(biāo)軟件系統(tǒng)在功能、性能、行為、設(shè)計(jì)約束等方面的期望。需求分析就是通過(guò)對(duì)應(yīng)用問(wèn)題及其壞境的分析與理解采用一系列的分析

29、方法和技術(shù)將用戶(hù)的需求逐步準(zhǔn)確化、完全化、一致化,最終形成需求規(guī)模說(shuō)明文檔的過(guò)程。本節(jié)將從不同的角度描述系統(tǒng)的需求。3.3.1播放器的根本控制需求在著手開(kāi)發(fā)系統(tǒng)之前首先要明確該系統(tǒng)應(yīng)該實(shí)現(xiàn)的一些最根本的功能,然后逐步細(xì)化,為每個(gè)功能創(chuàng)立一個(gè)模塊,再對(duì)各個(gè)模塊進(jìn)展開(kāi)發(fā)。通過(guò)分析我們得出一款音樂(lè)播放器的根本控制如圖3-1所示:圖 3-1 播放器根本控制圖3.3.2功能需求功能需求規(guī)定開(kāi)發(fā)人員必須在產(chǎn)品中實(shí)現(xiàn)的軟件功能,用戶(hù)利用這些功能來(lái)完成任務(wù),滿(mǎn)足業(yè)務(wù)需求。功能需求有時(shí)也被稱(chēng)作行為需求 behavioral requirement,因?yàn)榱?xí)慣上總是用“應(yīng)該對(duì)其進(jìn)展描述。功能需求描述是開(kāi)發(fā)人員需要實(shí)

30、現(xiàn)什么。功能需求定義一個(gè)軟件系統(tǒng)或組件的功能,也是一個(gè)系統(tǒng)需提供的功能及效勞。功能可以用一組輸入、行為及輸出的組合來(lái)表示。功能需求可以是計(jì)算、技術(shù)細(xì)節(jié)、數(shù)據(jù)處理或其他說(shuō)明系統(tǒng)希望達(dá)成功能的容。功能需求會(huì)以非功能性需求或是質(zhì)量需求為其根底。結(jié)合音樂(lè)播放器所要實(shí)現(xiàn)的容,我們列出用戶(hù)操作的模塊,其中每個(gè)模塊對(duì)應(yīng)一個(gè)功能。用戶(hù)啟動(dòng)程序進(jìn)入主界面,用戶(hù)可以通過(guò)添加模塊添加本地歌曲,可以一首一首添也可以添加整個(gè)歌曲文件夾。通過(guò)播放列表用戶(hù)可以實(shí)現(xiàn)對(duì)歌曲的查找、播放、暫停、音量調(diào)節(jié)、靜音。通過(guò)歌詞模塊可以實(shí)行歌曲歌詞的顯示、比對(duì)、歌詞字體選擇。此外用戶(hù)還可以聯(lián)網(wǎng)下載歌詞、歌曲。其功能模塊時(shí)序圖如下3-2所示

31、:圖3-2 音樂(lè)播放器功能時(shí)序圖4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)概要設(shè)計(jì)在需求明確、準(zhǔn)備開(kāi)場(chǎng)編碼之前,要做概要設(shè)計(jì)。概要設(shè)計(jì)的主要任務(wù)是把需求分析得到的DFD轉(zhuǎn)換為軟件構(gòu)造和數(shù)據(jù)構(gòu)造。設(shè)計(jì)軟件構(gòu)造的具體任務(wù)是:將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)展模塊劃分、建立模塊的層次構(gòu)造及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)構(gòu)造設(shè)計(jì)包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的構(gòu)造特性、以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。概要設(shè)計(jì)有多種方法。在早期有模塊化方法、功能分解方法;在60年代后期提出了面向數(shù)據(jù)流和面向數(shù)據(jù)構(gòu)造的設(shè)計(jì)方法;近年來(lái)又提出面向?qū)ο蟮脑O(shè)計(jì)方法等。本系統(tǒng)采用模塊化軟件設(shè)計(jì),自頂向下逐層把軟件系統(tǒng)劃分成假設(shè)干模塊。每個(gè)模塊完成一個(gè)特定的功能,

32、最后將所有模塊按照*種方法組合成一個(gè)整體,到達(dá)整個(gè)播放器所要求的功能。4.2系統(tǒng)功能設(shè)計(jì)及描述本音樂(lè)播放器不僅要實(shí)現(xiàn)對(duì)一些常見(jiàn)的音頻格式文件的播放,而且還要有友好的用戶(hù)界面。其最終設(shè)計(jì)目標(biāo)是:實(shí)現(xiàn)對(duì)多種音頻格式文件的播放、實(shí)現(xiàn)對(duì)歌詞的滾動(dòng)播放及當(dāng)前播放曲目長(zhǎng)度顯示、顯示歌曲文件信息、實(shí)現(xiàn)靜音和音量控制;播放器軟件占用系統(tǒng)資源少、運(yùn)行平臺(tái)要求不高、界面美觀舒適、操作簡(jiǎn)單、易維護(hù)、高穩(wěn)定性、,能滿(mǎn)足用戶(hù)的常見(jiàn)需求。主要?jiǎng)澐譃橐韵缕邆€(gè)功能模塊,每個(gè)功能模塊的作用描述如下:播放控制:控制歌曲的播放狀態(tài),如:播放、暫停、上一曲、下一曲。播放過(guò)的歌曲按播放順序排列在播放列表中,每次退出程序、重啟播放器后播

33、放列表中的播放記錄會(huì)自動(dòng)保存不會(huì)清空。文件控制:主要用來(lái)翻開(kāi)本地播放文件。通過(guò)研究音頻編碼解碼的相關(guān)技術(shù),了解音頻編碼解碼的原理和過(guò)程,本音樂(lè)播放器支持常見(jiàn)音頻格式文件播放如:MP3、WMA、WAV等。可以單個(gè)曲目添加,也可以將整個(gè)文件夾中的曲目全部添加,實(shí)現(xiàn)歌曲文件添加的多樣化;此外還可以對(duì)播放列表進(jìn)展清空,對(duì)曲目的播放順序進(jìn)展控制;當(dāng)播放列表中曲目過(guò)多時(shí),可以從播放列表中快速搜索到需要播放的歌曲。還有對(duì)播放列表進(jìn)展控制如:翻開(kāi)文件所在目錄、移除列表、刪除文件、顯示歌曲文件的相關(guān)信息,如:歌手、專(zhuān)輯等。歌詞控制:播放音樂(lè)時(shí)控制是否顯示歌曲歌詞,假設(shè)歌詞存在則同步滾動(dòng)顯示歌詞,假設(shè)歌詞不存在則

34、可聯(lián)網(wǎng)下載歌詞。此外還可以對(duì)歌詞字體進(jìn)展設(shè)置。進(jìn)度控制:顯示當(dāng)前歌曲的播放總時(shí)長(zhǎng)和已播放時(shí)長(zhǎng),可以通過(guò)鼠標(biāo)調(diào)整歌曲的播放進(jìn)度,實(shí)現(xiàn)歌曲的跳躍式播放。其實(shí)現(xiàn)方式是通過(guò)進(jìn)度條和時(shí)間的同步顯示。聲音控制:調(diào)整歌曲音量的大小,顯示是否靜音。下載控制:可以聯(lián)網(wǎng)下載自己喜歡的歌曲、歌詞。假設(shè)不知道歌曲名稱(chēng)則可以按歌手名查找歌曲下載,假設(shè)知道歌曲名則可直接輸入名稱(chēng)進(jìn)展下載,可以在下載進(jìn)度列表中查看下載狀態(tài)。音樂(lè)剪切:對(duì)音樂(lè)文件進(jìn)展剪切。添加當(dāng)前路徑,對(duì)想要的歌曲進(jìn)展播放,在歌曲播放過(guò)程中你可以在任何地方設(shè)置一個(gè)起點(diǎn),然后,再設(shè)置一個(gè)終點(diǎn)?!霸嚶?tīng)歌曲就是把你選出來(lái)的這一段播放一遍,看是不是你要的那一段,有時(shí)候

35、可以早開(kāi)場(chǎng)了幾秒或者早完畢了幾秒,這個(gè)時(shí)候可以直接在起點(diǎn)和終點(diǎn)的地方進(jìn)展調(diào)整。然后在這個(gè)窗口的上面有個(gè)“保存歌曲,就可以把你選出來(lái)的這段音樂(lè)保存起來(lái)了。我們可以通過(guò)歌曲剪切功能截取自己喜歡的音樂(lè)片段,來(lái)做為自己的手機(jī)鈴聲。其具體功能模塊如圖4-1所示:圖4-1 音樂(lè)播放器功能模塊圖5系統(tǒng)功能實(shí)現(xiàn)根據(jù)上一章對(duì)系統(tǒng)各個(gè)模塊的分析,本節(jié)主要講述如何具體實(shí)現(xiàn)這些模塊功能。幾乎所有的Windows程序都離不開(kāi)窗體,Windows窗體應(yīng)用程序是Windows下進(jìn)展軟件開(kāi)發(fā)的根底。在C*中,通過(guò)Visual Studio 2021開(kāi)發(fā)平臺(tái)模版,可以自動(dòng)生成多種基于Windows的應(yīng)用程序框架,主要包括基于.

36、NET Framework的Windows窗體應(yīng)用程序、Windows效勞應(yīng)用程序。最常用的是Windows窗體應(yīng)用程序。在Windows窗體應(yīng)用程序中,有窗體(Form)和控件(Control)兩個(gè)根本概念。窗體是控件的容器,控件是應(yīng)用程序顯示數(shù)據(jù)或承受數(shù)據(jù)輸入的相對(duì)獨(dú)立的用戶(hù)界面元素。.NET類(lèi)庫(kù)提供了豐富的窗體相關(guān)類(lèi),包括窗體、按鈕、狀態(tài)欄、工具欄、菜單、文本框、列表等多種不同的界面元素;此外還提供各種控件、組件、容器。通過(guò)這些界面元素的不同組合,可以設(shè)計(jì)出友好的用戶(hù)界面。對(duì)于軟件開(kāi)發(fā)中要用到的圖片可以自己繪制,相關(guān)控件可以調(diào)用類(lèi)庫(kù),從而設(shè)計(jì)出外形美觀的界面。但這也做相當(dāng)費(fèi)時(shí),由于畢業(yè)設(shè)

37、計(jì)的時(shí)間有限,圖片都從網(wǎng)上下載,并做稍微處理,所以美觀方面有一定欠缺,待以后有時(shí)間慢慢改良。此外界面是由窗體、控件拖放組成,大局部代碼由視圖設(shè)計(jì)器自動(dòng)生成,無(wú)需太多改動(dòng),因此這一局部不再詳細(xì)闡述,下面將主要介紹主要功能模塊的核心代碼實(shí)現(xiàn)。5.1歌曲添加模塊很多的應(yīng)用程序都有翻開(kāi)文件功能,本程序使用OpenFileDialog組件,用來(lái)翻開(kāi)本地磁盤(pán)上的一個(gè)或多個(gè)文件,并添加到文件播放列表中。5.1.1添加歌曲文件為了趕上社會(huì)的潮流,我們經(jīng)常會(huì)從網(wǎng)上下載最熱門(mén)的音樂(lè),本模塊功能就是實(shí)現(xiàn)添加本地歌曲或已下載到電腦的最新歌曲到播放列表,同時(shí)更新播放列表,使我們能及時(shí)欣賞到自己喜歡的音樂(lè)。其具體代碼如下

38、:privatevoidAddSong_Click(objectsender, EventArgse) ofd.Filter = 音樂(lè)文件(*.wmv, *.mp3,*.wav)| *.wmv; *.mp3;*.wav|All files (*.*)|*.*;ofd.InitialDirectory = Application.StartupPath;ofd.FileName = ;ofd.RestoreDirectory= false;ofd.Title = 添加音樂(lè)文件;if (ofd.ShowDialog() = DialogResult.OK) stringstrLongPath =

39、ofd.FileName;WriteFileByLongPath(strLongPath); privatevoidWriteFileByLongPath(stringstrLongPath) intb = strLongPath.LastInde*Of();stringstrShortPathWithE*tension = strLongPath.Substring(b + 1);StreamWritersw = newStreamWriter(list.ini, true);stringe*tension = strShortPathWithE*tension.Substring(strS

40、hortPathWithE*tension.Length - 3);if (e*tension.ToLower() = wmv | e*tension.ToLower() = mp3 | e*tension.ToLower() = wav) stringstrShortPathWithoutE*tension = strLongPath.Substring(b + 1, strShortPathWithE*tension.Length - 4);Mp3mp3 = newMp3(strLongPath);if (!(String.IsNullOrEmpty(mp3.Artist) | Strin

41、g.IsNullOrEmpty(mp3.Title) /獲取成功的結(jié)果(歌手名 - 歌曲名)strShortPathWithoutE*tension = mp3.Artist.Trim() + - + mp3.Title.Trim(); /否則原文件名if (!this.myListBo*.Items.Contains(strShortPathWithoutE*tension) /不包含songList.Add(strShortPathWithoutE*tension);Imageimage = getImageByArtistOrSongName(mp3.Artist, strShortPa

42、thWithoutE*tension);imageList.Add(image);this.myListBo*.Items.Add(strShortPathWithoutE*tension);this.myListBo*.songList = songList;this.myListBo*.imageList = imageList;sw.WriteLine(strShortPathWithoutE*tension);sw.WriteLine(strLongPath); /寫(xiě)入全路徑 sw.Flush();sw.Close(); 5.12添加歌曲文件夾當(dāng)我們要欣賞歌曲專(zhuān)輯時(shí),可能要添加的文件比

43、擬多,顯然單曲添加比擬麻煩,這時(shí)我們就可以使用OpenFileDialog組件的Multiselect屬性和Filenames屬性實(shí)現(xiàn)整個(gè)文件夾的添加,同時(shí)更新播放列表。代碼如下:privatevoidtsmiAddSongFolder_Click(objectsender, EventArgse) if (fbd.ShowDialog() = DialogResult.OK) stringstr = fbd.SelectedPath;DirectoryInfor = newDirectoryInfo(str);GetAllFiles(r); publicvoidGetAllFiles(Dir

44、ectoryInfodir) FileSystemInfo fileinto = dir.GetFileSystemInfos();foreach (FileSystemInfoiinfileinto) if (iisDirectoryInfo) GetAllFiles(DirectoryInfo)i); else stringstrLongPath = i.FullName;WriteFileByLongPath(strLongPath); privatevoidtsmiSearch_Click(objectsender, EventArgse) if (this.mySearchPanel

45、.boolSearchShow) /已經(jīng)翻開(kāi),則關(guān)閉this.mySearchPanel.close(); else this.mySearchPanel.boolSearchShow = true;this.mySearchPanel.lb = this.myListBo*;this.mySearchPanel.copyValueList(); initialSearchPanel(); 圖5-1 翻開(kāi)文件5.2歌曲列表模塊播放列表主要用來(lái)顯示要播放歌曲的信息,如歌手、照片、曲名。在這里我們使用ListBo*控件來(lái)實(shí)現(xiàn)相關(guān)功能。詳細(xì)代碼如下:this.myListBo*.Anchor = (

46、System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left);this.myListBo*.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;this.myListBo*.FormattingEnabled = true;this.myListBo*.Location = n

47、ewSystem.Drawing.Point(2, 115);this.myListBo*.Name = myListBo*;this.myListBo*.Size = newSystem.Drawing.Size(302, 354);this.myListBo*.TabInde* = 0;this.myListBo*.MouseDown += newSystem.Windows.Forms.MouseEventHandler(this.myListBo*_MouseDown);privatevoidmyListBo*_MouseDown(objectsender, MouseEventArg

48、se) if (this.myListBo*.thisInde* != -1) if (e.Button = System.Windows.Forms.MouseButtons.Right) this.myListBo*.Conte*tMenuStrip = thissListBo*; 圖5-2播放列表5.3播放控制模塊播放是音樂(lè)播放器最重要的功能。本程序使用Windows Media Player命名空間中定義的屬性和方法來(lái)實(shí)現(xiàn)歌曲的播放、暫停、上下去切換等。其核心代碼如下:privatevoidinitialBtn() if (playStatue = MediaPlayer.PlaySt

49、atue.播放) /正在播放,暫停圖片btnPlay.Image = Image.FromFile(picpause.bmp); elseif (playStatue = MediaPlayer.PlayStatue.暫停 | playStatue = MediaPlayer.PlayStatue.停頓) /開(kāi)場(chǎng)播放圖片btnPlay.Image = Image.FromFile(picplay.bmp); if (this.boolVolumn) this.btnVolumn.Image = Image.FromFile(pic02.gif); elsethis.btnVolumn.Imag

50、e = Image.FromFile(pic01.gif); privatevoidne*tSongPlay() /下一曲if (playStyle = MediaPlayer.PlayStyle.隨機(jī)播放) /選擇隨機(jī)播放時(shí)就產(chǎn)生一個(gè)隨機(jī)數(shù)組,播放記錄,根據(jù)數(shù)組,上一曲下一曲都有用if (randomInde* + 1 = randomList.Count) randomSongPlay(); elsethis.myListBo*.doubleClickInde* = (int)randomList+randomInde*; elseif (playStyle = MediaPlayer.P

51、layStyle.順序播放) this.myListBo*.doubleClickInde*+;if (this.myListBo*.doubleClickInde* = this.myListBo*.Items.Count) playStatue = MediaPlayer.PlayStatue.停頓;this.myListBo*.doubleClickInde* = this.myListBo*.Items.Count - 1;stop();initialBtn();return; else /下一曲,如果到底,將播放第一首歌曲,全部循環(huán)this.myListBo*.doubleClick

52、Inde*+;if (this.myListBo*.doubleClickInde* = this.myListBo*.Items.Count) /轉(zhuǎn)第一首this.myListBo*.doubleClickInde* = 0; btnChangeSong();initialBtn(); privatevoidlastSongPlay() if (playStyle = MediaPlayer.PlayStyle.隨機(jī)播放 & randomInde* = 1) this.myListBo*.doubleClickInde* = (int)randomList-randomInde*; else

53、if (playStyle = MediaPlayer.PlayStyle.順序播放) this.myListBo*.doubleClickInde*-;if (this.myListBo*.doubleClickInde* = -1) this.myListBo*.doubleClickInde* = 0;playStatue = MediaPlayer.PlayStatue.停頓;stop();initialBtn();return; else this.myListBo*.doubleClickInde*-;if (this.myListBo*.doubleClickInde* = -1

54、) /轉(zhuǎn)最后一首this.myListBo*.doubleClickInde* = this.myListBo*.Items.Count - 1; btnChangeSong(); 5.4音量控制模塊通過(guò)調(diào)節(jié)音量大小來(lái)到達(dá)歌曲播放的最正確狀態(tài)??梢哉{(diào)用API函數(shù) SENDMESSAGE APPMAND_VOLUME_MUTE和TrackBar 類(lèi)來(lái)實(shí)現(xiàn)音量控制。代碼如下:privatevoidbtnVolumn_Click(objectsender, EventArgse) IniUtility.FilePath = Application.StartupPath + INI.ini;if (

55、this.boolVolumn) player.setAudioOnOff(off);this.boolVolumn = false;IniUtility.WriteIniKey(Player, boolVolumn, 0); else player.setAudioOnOff(on);this.boolVolumn = true;IniUtility.WriteIniKey(Player, boolVolumn, 1); initialBtn(); privatevoidmyTBVolumn_Scroll(objectsender, EventArgse) IniUtility.FilePa

56、th = Application.StartupPath + INI.ini;intvalue = this.myTBVolumn.Value;player.SetVolume(value);IniUtility.WriteIniKey(Player, Volume, value.ToString(); 5.5進(jìn)度控制模塊進(jìn)度控制用來(lái)顯示歌曲的播放進(jìn)度,也可以通過(guò)鼠標(biāo)拖動(dòng)實(shí)現(xiàn)歌曲的任意播放,通過(guò)把當(dāng)前播放長(zhǎng)度和進(jìn)度條同步結(jié)合起來(lái)實(shí)現(xiàn)。此外還能夠顯示歌曲的播放時(shí)長(zhǎng),這是通過(guò)Timer組件的Tick事件實(shí)現(xiàn)。其主要代碼如下:privatevoidmyTBPlayProcess_MouseDown(

57、objectsender, MouseEventArgse) player.setPlayPosition(this.myTBPlayProcess.Value);this.lblTime.LblCurSecond = this.myTBPlayProcess.Value; privatevoidchangeCurSecond(intvalue) this.myTBPlayProcess.Value = value;this.showLrc.curPlayTimeSecond = value; 5.6滾動(dòng)字幕模塊有很多音樂(lè)播放器都可以實(shí)現(xiàn)一邊聽(tīng)音樂(lè)一邊看歌詞的功能,這樣做可以幫助用戶(hù)更好地欣賞

58、音樂(lè),同時(shí)還可以強(qiáng)化對(duì)歌詞的記憶進(jìn)而到達(dá)背誦,為聽(tīng)者以后獨(dú)唱歌曲做鋪墊。此外還可以對(duì)歌詞字體進(jìn)展設(shè)置,從而到達(dá)視覺(jué)和聽(tīng)覺(jué)的雙重享受。其核心代碼如下:publicpartialclassShowLrc : Form /歌詞文件名就是ListBo*中項(xiàng)的名稱(chēng)publicShowLrc() Initializeponent(); privateFontfont = newFont(華文行楷, 25.0f, FontStyle.Bold);publicintcurPlayTimeSecond = 0; /lblTime傳遞過(guò)來(lái)播放的秒數(shù)(用于歌詞提前和延后),因?yàn)橛袝r(shí)候獲取時(shí)間不準(zhǔn)確publicboo

59、lisPlay = false;privatevoidShowLrc_Load(objectsender, EventArgse) initialBtn(); publicvoidinitial() graphics = this.CreateGraphics();time.Interval = 100;time.Tick += newEventHandler(time_Tick);initialINI(); voidtimer_Tick(objectsender, EventArgse) clearPanel();if (string.IsNullOrEmpty(strLrcConte*t)

60、 drawString(未找到歌詞); else drawString(regc(curPlayTimeSecond); publicvoidclearConte*t() curFileName = ;subgc = null;mylist.Clear(); privatevoidclearPanel() graphics.Clear(Color.Maroon); privatevoidsplit() subgc = strLrcConte*t.Split(newchar , , r, n );/subgc存儲(chǔ)歌詞文件中所有的時(shí)間信息和歌詞/使用正則表達(dá)式判斷時(shí)間格式提取出時(shí)間信息,并進(jìn)展排序

溫馨提示

  • 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)論