基于iOS的在線音樂播放系統(tǒng)的開發(fā)畢業(yè)論文_第1頁
基于iOS的在線音樂播放系統(tǒng)的開發(fā)畢業(yè)論文_第2頁
基于iOS的在線音樂播放系統(tǒng)的開發(fā)畢業(yè)論文_第3頁
基于iOS的在線音樂播放系統(tǒng)的開發(fā)畢業(yè)論文_第4頁
基于iOS的在線音樂播放系統(tǒng)的開發(fā)畢業(yè)論文_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于iOS的在線音樂播放系統(tǒng)的開發(fā)摘要音樂播放器是一種用于播放各種音樂文件的多媒體播放軟件。它涵蓋了各種音樂格式的播放工具,比方:MP3播放器,WMA播放器,MP4播放器等。它們不僅界面美觀,而且操作簡單,帶你進(jìn)入一個(gè)完美的音樂空間。音樂播放器是一種在上用于播放各種音樂文件的多媒體播放軟件。它們?cè)谥羞\(yùn)行,不僅界面美觀,而且操作簡單,帶你進(jìn)入一個(gè)完美的音樂空間。例如QQ音樂播放器通過貼心的設(shè)計(jì)、卓越的體驗(yàn)、海量的曲庫、最新的流行音樂、專業(yè)的分類、豐富的空間背景音樂、音樂分享等社區(qū)效勞,讓QQ音樂成為中國網(wǎng)民在線音樂生活的首選品牌,引領(lǐng)著人們的音樂生活方式!音樂將是人們所關(guān)注的重點(diǎn),也是提高水平的必要途徑之一。本文主要介紹了iOS平臺(tái)以及基于該平臺(tái)的音樂播放娛樂系統(tǒng)的開展現(xiàn)狀,并且詳細(xì)地介紹了。本系統(tǒng)是一款基于iPhone平臺(tái)的音樂播放系統(tǒng)和游戲,本地播放,本地游戲?yàn)橐惑w,支持mp3等主流音頻。資源占用率小,運(yùn)行效率高,操作簡潔,擴(kuò)展能力強(qiáng)。本系統(tǒng)播放畫面流暢,具有聲效和圖效上的聽覺及視覺的享受。使用本音樂播放您可能會(huì)感覺到身心愉悅,在聽音樂的同時(shí)能夠玩游戲,其中采用SQLite數(shù)據(jù)庫,常用iPhone控件等技術(shù),模塊與模塊間低耦合,高內(nèi)聚,采用模塊化方法編程,維護(hù)性較高。關(guān)鍵詞:iPhone;SQLite;游戲;ios;控件ThedevelopmentofOnlineMusicBroadcastSystemBasedoniOSAbstractThemusicplayerisamultimediaplayersoftwaretoplaymusicfiles.Itcoversthetoolsofavarietyofmusicformats,suchas:MP3player,WMAplayer,MP4player,etc..Notonlyaretheybeautifulinterfaceandeasytooperate,tobringyouintoaperfectspaceformusic.Cellphonemusicplayerisamultimediaplayersoftwaretoplaymusicfilesonthephone.Theyruninthephone,notonlybeautifulinterfaceandeasytooperate,takeyouintoaperfectspaceformusic.QQmusicplayerthroughthethoughtfuldesign,exceptionalexperience,themassivemusiclibrary,thelatestpopularmusic,professionalclassification,spacebackgroundmusic,musicsharing,communityservice,QQmusiconlinemusiclifeoftheChinesenetizensthebrandofchoiceforleadingthepeople'smusiclifestyle!Themusicwillbethefocusoftheessentialmeansofraisingthelevelofone.ThispaperdescribestheiOSplatform,aswellasthedevelopmentoftheentertainmentsystembasedontheplatformofmusicplaybackstatusquo,anddescribedindetail.ThissystemisamusicplayerandmobilegamesbasedontheiPhoneplatform,localplayback,localgameasawhole,supportformp3andothermainstreamaudio.Smallrateofresourceconsumption,highoperatingefficiency,simpleoperation,andexpansioncapability.Theplaybackscreenandsmooth,withtheeffectonthesoundandFigurehearingandvisualenjoyment.Tousethemusicplayer,youmayfeelrelaxedandabletoplaygameswhilelisteningtomusic,peopleininfinitejoy,whichuseslow-couplingintheSQLitedatabase,commoniPhonecontrols,modules,andmodules,hightogether,usingamodularapproachtoprogramming,tomaintainthehigh。Keywords:iPhone;SQLite;Music;Game;ios;Control;目錄基于iOS的在線音樂播放系統(tǒng)的開發(fā) 1ThedevelopmentofOnlineMusicBroadcastSystemBasedoniOS 2第1章緒論 61.1課題開發(fā)背景 71.2音樂播放娛樂系統(tǒng)框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義 81.3本系統(tǒng)預(yù)到達(dá)的目標(biāo) 8第2章在線音樂播放系統(tǒng)開發(fā)技術(shù)簡介 92.1Objective-c簡介 92.1.1ios系統(tǒng)框架 10核心操作系統(tǒng)層和核心效勞層 10應(yīng)用程序框架 122.2SQLite數(shù)據(jù)庫介紹 132.3XCode 13第3章在線音樂播放系統(tǒng)需求分析 163.1在線音樂播放系統(tǒng)的可行性分析 163.2在線音樂系統(tǒng)功能需求分析 183.2.1功能需求 19根據(jù)系統(tǒng)功能劃分,本系統(tǒng)詳細(xì)需求描述如下: 19第4章在線音樂播放系統(tǒng)設(shè)計(jì) 214.1在線音樂播放系統(tǒng)總體架構(gòu)設(shè)計(jì) 214.2模塊功能設(shè)計(jì) 214.2.1音樂播放功能模塊 224.2.2音樂信息功能模塊 234.2.3在線搜索音樂功能模塊 244.2.4在線下載功能模塊 264.2.5水果連連看功能模塊 274.2.6音樂視頻功能模塊 284.2.7音樂播放設(shè)置功能模塊 30第5章在線音樂播放系統(tǒng)實(shí)現(xiàn) 325.1系統(tǒng)初始化的實(shí)現(xiàn) 325.2音樂播放的實(shí)現(xiàn) 365.3音樂播放列表的實(shí)現(xiàn) 385.4在線搜索音樂的實(shí)現(xiàn) 425.5在線下載的實(shí)現(xiàn) 455.6水果連連看功能的實(shí)現(xiàn) 495.7音樂視頻播放功能的實(shí)現(xiàn) 525.8系統(tǒng)播放設(shè)置功能的實(shí)現(xiàn) 54第6章系統(tǒng)測(cè)試 566.1功能模塊測(cè)試 566.2功能整體測(cè)試 57第1章緒論隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)和Internet的飛速開展,基于因特網(wǎng)的移動(dòng)應(yīng)用已經(jīng)開始成為一種全新的功能需求,并且越來越受到人們的關(guān)注。由于移動(dòng)應(yīng)用具有簡單性,隨時(shí)隨地性等諸多特點(diǎn),因此它有著傳統(tǒng)計(jì)算機(jī)所無法比較的優(yōu)點(diǎn)。這樣一來,移動(dòng)應(yīng)用的開發(fā)工作就顯得尤為重要,開發(fā)出一個(gè)音樂播放器就更有必要了。本文依據(jù)設(shè)計(jì)實(shí)現(xiàn)出的以SQLite數(shù)據(jù)庫為例的音樂播放器,做了全面系統(tǒng)的介紹。全文共六章,按照前期的開發(fā)順序,從系統(tǒng)分析與研究開始,逐一對(duì)開發(fā)過程做了全面的介紹。第一章,介紹了課題的開發(fā)背景、課題開發(fā)的現(xiàn)實(shí)意義、音樂播放器的概念涵義以及預(yù)期到達(dá)的目標(biāo)。第二章,概略地介紹了開發(fā)音樂播放器多用到的各種技術(shù),比方新技術(shù)Objective-c,SQLite數(shù)據(jù)庫,開源框架的xml解析等。第三章,對(duì)音樂播放器的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)功能、運(yùn)行環(huán)境等概要分析設(shè)計(jì)階段做工了大體介紹即需求分析。第四章,對(duì)系統(tǒng)總體流程設(shè)計(jì)、系統(tǒng)整體框架、后臺(tái)邏輯處理功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)作了簡要說明。第五章,具體介紹了系統(tǒng)各功能實(shí)現(xiàn)過程,如音樂播放界面的處理,音樂信息的處理,在線音樂搜索的處理,連連看游戲的處理等。第六章,大體介紹了對(duì)本系統(tǒng)的測(cè)試工作,涵蓋了測(cè)試方案、測(cè)試結(jié)果以及測(cè)試分析這三個(gè)方面的內(nèi)容。1.1課題開發(fā)背景如今的移動(dòng)應(yīng)用開發(fā)產(chǎn)業(yè)讓人眼花繚亂,主要的移動(dòng)操作平臺(tái)有:iOS(iPhoneOS)、Android、NokiaSymbian、BlackBerry、JavaME、WindowsPhone、Flash/FlashLite、mobileweb(WAP/XHTML/CSS/Javascript)。Android以其開放性,多任務(wù),大功能,畫面流暢,硬件設(shè)備優(yōu)良多樣等各種優(yōu)點(diǎn),占智能機(jī)一大局部;然而它也存在著很明顯的缺乏,如:兼容性差,各種機(jī)型的配置不一樣,以至于開發(fā)的時(shí)候出現(xiàn)各種版本。有些產(chǎn)品華而不實(shí),用戶體驗(yàn)差。Symbian主要基于C語言的應(yīng)用開發(fā),支持多線程運(yùn)行模式,但是開發(fā)代碼量過大給開發(fā)人員造成很大的不便,另外塞班版本之間兼容性差也是SymbianOS需要改良的一個(gè)地方。就目前而言,三大平臺(tái)(Android、Symbian、BlackBerry)的市場占有率也在逐漸下降,iOS呈現(xiàn)平穩(wěn)上升趨勢(shì)。1.AppStore的支付模式成熟。不僅僅是商業(yè)模式的創(chuàng)新,更重要的是無法模仿,經(jīng)過長時(shí)間的運(yùn)營,AppStore已經(jīng)形成完備的支付模式,被大局部用戶接受。2.iOS是用Objective-C開發(fā)。從全球的編程語言排行榜來看,雖然,Objective-C只有蘋果公司一家使用,但是已經(jīng)排名第4,可見iOS開發(fā)的普及性和受歡送程度,另外,基于C語言,運(yùn)行效率更高。3.蘋果iPhone以及所有蘋果的硬件軟件策略和控制讓蘋果在用戶體驗(yàn)和控制產(chǎn)品質(zhì)量方面占盡先機(jī),大局部iOS用戶能夠同時(shí)對(duì)他們手中的設(shè)備進(jìn)行更新,這會(huì)吸引更多用戶。4.iPhone在中國極受歡送。中國的各大移動(dòng)運(yùn)營商都積極地與蘋果公司合作,各自推出適合中國人使用的套餐和應(yīng)用,比方中國聯(lián)通,中國電信等等,社會(huì)各界也對(duì)iPhone有很好的評(píng)價(jià)。5.iOS在各國開發(fā)者中有很好的學(xué)習(xí)氣氛,如facebook的three20iOS開源代碼庫,都是良好的學(xué)習(xí)資源。1.2音樂播放娛樂系統(tǒng)框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義收聽音樂越來越成為人們繁忙之余的輕松娛樂活動(dòng)。市場上大多數(shù)播放系統(tǒng),存在功能單一,下載時(shí)間長,畫面不流暢,用戶體驗(yàn)不好,浪費(fèi)很多資源和時(shí)間,另外,由于音樂播放系統(tǒng)開展短,很多系統(tǒng)都沒有標(biāo)準(zhǔn)化管理資源,資源分類混亂等。本系統(tǒng)緊跟當(dāng)前移動(dòng)開發(fā)趨勢(shì),基于iPhone平臺(tái)的音樂播放系統(tǒng)。具有資源占用率小,運(yùn)行效率高,操作簡潔,擴(kuò)展能力強(qiáng)等特點(diǎn)。1.3本系統(tǒng)預(yù)到達(dá)的目標(biāo)本系統(tǒng)緊跟當(dāng)前移動(dòng)開發(fā)趨勢(shì),使用Objective-c語言開發(fā)一個(gè)基于iOS平臺(tái)的音樂播放娛樂系統(tǒng),實(shí)現(xiàn)基于iOS平臺(tái)的音樂播放娛樂系統(tǒng)的根本功能。歌的切換以及列表顯示,在聽歌的同時(shí)能夠娛樂。第2章在線音樂播放系統(tǒng)開發(fā)技術(shù)簡介該局部主要包括對(duì)iOS系統(tǒng)架構(gòu)的分析,核心操作系統(tǒng)的分析,應(yīng)用程序框架的分析,內(nèi)核的分析,開發(fā)環(huán)境的配置信息,選用數(shù)據(jù)庫描述信息等,具體如下。2.1Objective-c簡介Objective-C是非?!皩?shí)際〞的于洋。它使用一個(gè)用C寫成、很吊的運(yùn)行庫,只會(huì)令應(yīng)用程序的大小增加很小,和大局部OO系統(tǒng)使用極大的VM執(zhí)行時(shí)間會(huì)取代了整個(gè)系統(tǒng)的運(yùn)作相反。ObjC寫成的程序通常不會(huì)比其源代碼大很多。而其函數(shù)庫(通常附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大的內(nèi)存來開啟一個(gè)窗口的情況相反。Objective-C的最初版本冰不支持垃圾回收。在當(dāng)時(shí)這是爭論的焦點(diǎn)之一,很多人考慮到Smalltalk回收時(shí)有漫長的“死亡時(shí)間〞,令整個(gè)系統(tǒng)失去功用。Objective-C為防止此問題才不擁有這個(gè)功能。雖然某些第三方版本已經(jīng)參加這個(gè)功能(尤其是GNUstep),再起MacOSX10.3中仍未引入這個(gè)功能。不過令人欣慰的是在Apple發(fā)布的XCode4中已經(jīng)支持自動(dòng)釋放,我不敢冒昧的說那是垃圾回收,因?yàn)閮烧邫C(jī)制不同,在xCode4中的自動(dòng)釋放,也就是ARC(AutomaticReferenceCounting)機(jī)制,是不需要用戶手動(dòng)去Release一個(gè)對(duì)象,而是在編譯期間,編譯器會(huì)自動(dòng)幫你添加那些以前你經(jīng)常寫的[NSObjectrelease]。另一個(gè)問題是ObjC不包括命名空間機(jī)制(namespacemechanism)。取而代之的是程序設(shè)計(jì)師必須在其類別名稱加上前綴,時(shí)常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有MacOSX類別和函式均有“NS〞作為前綴,例如NSObject或NSButton來清楚分別它們屬于MacOSX核心;使用“NS〞是由于這些類別的名稱在NeXTSTEP開發(fā)時(shí)定下。雖然Objective-C是C的母集,但它也不視C的根本型別為第一級(jí)的對(duì)象。和C++不同,Objective-C不支援運(yùn)算子多載〔它不支持ad-hoc多型〕。亦與C++不同,但和Java相同,Objective-C只容許對(duì)象繼承一個(gè)類別〔不設(shè)多重繼承〕。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點(diǎn),例如額外執(zhí)行時(shí)間過重和二進(jìn)制不兼容。由于Obj-C使用動(dòng)態(tài)運(yùn)行時(shí)類型,而且所有的方法都是函數(shù)調(diào)用〔有時(shí)甚至連系統(tǒng)調(diào)用〔syscalls〕也如此〕,很多常見的編譯時(shí)性能優(yōu)化方法都不能應(yīng)用于Obj-C〔例如:內(nèi)聯(lián)函數(shù)、常數(shù)傳播、交互式優(yōu)化、純量取代與聚集等〕。這使得Obj-C性能劣于類似的對(duì)象抽象語言〔如C++〕。不過Obj-C擁護(hù)者認(rèn)為既然Obj-C運(yùn)行時(shí)消耗較大,Obj-C本來就不應(yīng)應(yīng)用于C++或Java常見的底層抽象2.1.1ios系統(tǒng)框架iOS的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。iOS分為四層,分別為核心操作系統(tǒng)(theCoreOSlayer),核心效勞層(theCoreServiceslayer),媒體層(theMedialayer),Cocoa觸摸架構(gòu)層(theCocoaTouchlayer)。核心操作系統(tǒng)層和核心效勞層位于iOS系統(tǒng)架構(gòu)最下面的一層是核心操作層,它包括內(nèi)存管理,文件管理,電源管理以及一些其他的操作系統(tǒng)業(yè)務(wù),它可以直接和硬件設(shè)備交互。核心操作系統(tǒng)層包括以下這些組件:OSXKernel,Mach3.0,BSD,Sockets,PowerMgmt,F(xiàn)ileSystemKeychain,Certificates,Security,Bonjour等。開發(fā)人員也可以完全訪問核心效勞層來方問iOS的一些效勞,包括數(shù)據(jù)庫連接,URL學(xué)習(xí)等等,它主要包括以下這些組件:Collections,AddressBook,Networking,F(xiàn)ileAccess,SQLite,CoreLocation,NetServices,Threading,Preferences,URLUtilities等。SQLite是嵌入式的和輕量級(jí)的sql數(shù)據(jù)庫,廣泛用于iOS應(yīng)用。iOS系統(tǒng)內(nèi)置SQLite數(shù)據(jù)庫減小了開發(fā)人員的負(fù)擔(dān),是系統(tǒng)的一局部。NetServicer主要負(fù)責(zé)網(wǎng)絡(luò)效勞,在開發(fā)過程中,承當(dāng)應(yīng)用程序與效勞器之間連接的角色,有很強(qiáng)的交互性。媒體層,通過它可以在應(yīng)用程序中使用各種媒體文件,進(jìn)行音頻與視頻的錄制,圖形的繪制,以及制作根底的動(dòng)畫效果。它包括以下這些組件:CoreAudio,OpenGL,AudoMixing,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGLES。最上面一層是可觸摸層,這一層為應(yīng)用開發(fā)提供了各種有用的框架,并且大局部與用戶界面有關(guān),本質(zhì)上來說它負(fù)責(zé)用戶在iOS設(shè)備上的觸摸交互操作。它包括以下這些組件:Multi-TouchEvents,CoreMotion,Camera,ViewHierarchy,Localization,Alerts,WebViews,ImagePicker,Multi-TouchControls。在CocoaTouch層中的很多技術(shù)都是基于Objective-C語言的。Objective-C語言為iOS提供了相機(jī)集合,文件管理,網(wǎng)絡(luò)操作等支持。例如UIKit框架,它為應(yīng)用程序提供了各種可視化組件,窗口(window),視圖(view)和按鈕組件(UIButton)。CocoaTouch層中的其他框架,對(duì)我們?cè)趹?yīng)用程序中的開發(fā)來說也是非常有用的,如訪問用戶通信錄功能框架,獲取照片信息功能的框架,負(fù)責(zé)加速感應(yīng)器和三維陀螺儀等硬件支持的框架等等。應(yīng)用程序框架編寫應(yīng)用程序工程,都是從CocoaTouch層開始的,具體來說是從UIKitFramework開始的。iOS常用的SDK框架如下:AddressBook.framework提供訪問存儲(chǔ)核心數(shù)據(jù)庫中用戶聯(lián)系人信息的功能。AddressBook.framework提供一個(gè)用戶界面,用于顯示存儲(chǔ)在地址薄中的聯(lián)系人詳情。AudioUnit.framework提供一個(gè)接口,讓我們的應(yīng)用程序可以對(duì)音頻進(jìn)行處理。AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時(shí)也負(fù)責(zé)管理音頻硬件。CFNetwork.framework訪問和配置網(wǎng)絡(luò),像,F(xiàn)TP和BonjourServices等。CoreFoundation.framework提供抽象的常用數(shù)據(jù)類型,如Unicode、strings、XML、URL等。CoreGraphics.framework提供2D繪制的基于C的API。Foundation.framework提供Object-C的根底類(像NSObject)、根本數(shù)據(jù)類型和操作系統(tǒng)效勞等。GameKit.framework為游戲提供網(wǎng)絡(luò)功能,點(diǎn)對(duì)點(diǎn)互聯(lián)和游戲中的語音交流。MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。MediaPlayer.framework提供視頻播放和音頻的功能。MessageUI.framework提供視圖控制接口用以處理E-mail和短信。OpenGLES.framework提供簡潔而高效的繪制2D和3D圖形的OpenGLAPI。QuartzCore.framework提供動(dòng)畫特效以及通過硬件進(jìn)行渲染的能力。StoreKit.framework為應(yīng)用程序提供在程序運(yùn)行中消費(fèi)的支持。SystemConfiguration.framework檢測(cè)當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。2.2SQLite數(shù)據(jù)庫介紹SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比方Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月.至今已經(jīng)有10個(gè)年頭,SQLite也迎來了一個(gè)版本SQLite3已經(jīng)發(fā)布。2.3XCodeXcode2.0是開發(fā)人員建立MacOSX應(yīng)用程序的最快捷方式,也是利用新的蘋果電腦公司技術(shù)的最簡單的途徑。Xcode2.0將MacOSX的輕松使用,UNIX能量以及高性能的開發(fā)技術(shù)集合在一起。不管你用C、C++、Objective-C或Java編寫程序,在AppleScript里編寫腳本,還是試圖從另一個(gè)奇妙的工具中轉(zhuǎn)移編碼,你會(huì)發(fā)現(xiàn)Xcode編譯速度極快。每次操作都很快速和輕松。Xcode4的虛擬模型和設(shè)計(jì)功能讓你可以更輕松的開發(fā)和維護(hù)應(yīng)用程序。只需選擇應(yīng)用程序中想要編寫的局部,然后模型和設(shè)計(jì)系統(tǒng)將自動(dòng)創(chuàng)立分類圖表,不僅可以顯示編碼,還可以讓你進(jìn)行瀏覽。MacOSXCoreDataAPI幫你的應(yīng)用程序創(chuàng)立數(shù)據(jù)結(jié)構(gòu)。更棒的是,它還自動(dòng)提供撤消、重做和保存功能,無需編寫任何編碼。Xcode整合的AppleReferenceLibrary為所有的Apple開發(fā)者文件提供一個(gè)單獨(dú)的搜索和顯示界面,這些文件包括來自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新狀態(tài)。Xcode將幫你快速找到最新的答案。Xcode4的核心局部是蘋果電腦公司下一代業(yè)界標(biāo)準(zhǔn)的gcc編譯器gcc4.0。新的編譯器利用許多先進(jìn)的最優(yōu)化技術(shù)幫你從現(xiàn)存編碼中獲得更多性能。從超級(jí)計(jì)算世界借鑒來的自動(dòng)向量化〔Auto-vectorization〕技術(shù)可以幫助你釋放每臺(tái)Intel系統(tǒng)中速度引擎的能量,而不需要編寫向量化編碼。其他的最優(yōu)化工具那么支持反應(yīng)定向的最優(yōu)化,以及隱藏模塊分析。Xcode將賦予你創(chuàng)立諸如計(jì)算和渲染引擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過訪問內(nèi)存中的數(shù)據(jù)運(yùn)行速度更快,遠(yuǎn)勝于磁盤訪問。Xcode將為你提供工具來建立并調(diào)試適合IntelCorei5,i7和MacOSXLion的32或64位應(yīng)用程序,還可以讓你創(chuàng)立包含32位和64位執(zhí)行能力的FatBinaries。眾所周知,在構(gòu)建中引進(jìn)多重處理器可以提高速度,Xcode能幫你實(shí)現(xiàn)這個(gè)明顯的結(jié)論。利用支持Rendezvous的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構(gòu)建,或者更好是在單獨(dú)的電腦上開發(fā)一個(gè)專門的Xserve構(gòu)建寄放區(qū),快速處理那些耗時(shí)的任務(wù)。第3章在線音樂播放系統(tǒng)需求分析根據(jù)第一章所定義的課題研究方向及目標(biāo),本章將對(duì)系統(tǒng)功能進(jìn)行具體的需求分析,具體分析音樂播放娛樂系統(tǒng)所要實(shí)現(xiàn)的功能以及欲到達(dá)的效果。3.1在線音樂播放系統(tǒng)的可行性分析1.使用Objective-C編程技術(shù)Objective-C是C語言的面向?qū)ο髷U(kuò)展,可以將其稱為“帶有對(duì)象的C〞。相對(duì)于其他面向?qū)ο笳Z言,Objective-C更加容易學(xué)習(xí)。(1)動(dòng)態(tài)綁定函數(shù)和消息的最根本不同是:函數(shù)和它的參數(shù)是在編譯的時(shí)候已經(jīng)確定下來,但是消息和接收對(duì)象知道程序已經(jīng)在運(yùn)行,消息在傳遞時(shí)才能確定下來。確切的消息方法實(shí)現(xiàn)依賴于消息的接收者,不同的接收者可能有相同的方法名不同的方法實(shí)現(xiàn),只有在消息接收時(shí)才能確定(動(dòng)態(tài)類型),通過源代碼的類型定義并不能完全確認(rèn)接收者的類型。運(yùn)行時(shí)消息例程查找接收者和消息方法,找到消息方法實(shí)現(xiàn)的機(jī)器碼,呼叫這個(gè)方法,傳遞給它消息實(shí)例變量指針。(2)多態(tài)性在Objective-c中消息的調(diào)用看上去和標(biāo)準(zhǔn)C中的函數(shù)調(diào)用相似,但因?yàn)榉椒▽儆谝粋€(gè)對(duì)象,消息的行為與函數(shù)調(diào)用還是不同。在一些情況下,一些對(duì)象僅能對(duì)針對(duì)它涉及的方法起作用,不能被其他類的方法使用,即使這些類有同樣名稱的方法。這意味著兩個(gè)對(duì)象對(duì)同樣的消息有著不同的響應(yīng),即多態(tài)性。Objective-c中多態(tài)性和動(dòng)態(tài)綁定配合使用,可以使代碼提供應(yīng)任意數(shù)量不同類型的對(duì)象使用,這些對(duì)象不需要再寫代碼的時(shí)候就已經(jīng)定義好,它們可以是以后開發(fā)的對(duì)象,也可以是其他工程的對(duì)象。(3)面向?qū)ο竺嫦驅(qū)ο蟪绦驑?gòu)建在多種對(duì)象之上,基于Cocoa框架的程序可能使用NSMatrix對(duì)象、NSWindow對(duì)象、NSDirectonary對(duì)象、NSFont對(duì)象以及許多其它對(duì)象。在Objective-c中通過定義類來定義對(duì)象。面向?qū)ο笞岄_發(fā)者更容易開發(fā)應(yīng)用程序軟件,以及更加標(biāo)準(zhǔn)化。(4)繼承性類的定義是累進(jìn)的,任一個(gè)新類都是在另一個(gè)類的根底上定義的,新類繼承了它的方法和實(shí)例變量。繼承使所有的類構(gòu)成一顆樹形的結(jié)構(gòu),在Objective-c中使用類一般要繼承或間接繼承于基類:NSObject,因?yàn)镹SObject提供了大量的有用特性。比方,一些圖形類,需要繼承于Shape類,而Shape是Graphic類的子類,Graphic又繼承于NSObject類,因此,還是間接繼承于NSObject類。類的繼承關(guān)系圖3-1所示:NSObjectNSObjectGraphicImageTextShapeLineRectangleCircleSquare圖3-1Objective-C類繼承圖1.使用工具方面:開發(fā)環(huán)境為xcode4.2。2.操作系統(tǒng)方面:使用mac10.8操作系統(tǒng)。3.硬件可行性一臺(tái)已經(jīng)安裝有所有必備的軟件及相應(yīng)軟件設(shè)備的計(jì)算機(jī);內(nèi)存要求大于或等于2G。4.社會(huì)因素和市場因素可行性如今社會(huì)開展迅速,每個(gè)人都不再滿足于功能單一的音樂播放器,越來越多地傾向于娛樂性能完備的音樂播放系統(tǒng)。用戶對(duì)在聽音樂的同時(shí)還可以玩小游戲來更加的享受。按照目前市場情形,越來越多的移動(dòng)開發(fā)者涌進(jìn)iOS開發(fā)領(lǐng)域。iOS平臺(tái)上應(yīng)用軟件,AppStore的支付模式更為成熟而且有監(jiān)管,另外iOS的兼容性問題小,開發(fā)人員不用考慮太多的配置兼容問題,美觀大方的外形,更是吸引了大量的用戶。而且其良好的用戶體驗(yàn),都為iOS的開展奠定了良好的根底。該音樂播放系統(tǒng),可以在聽歌的同時(shí)玩本地小游戲,給用戶極好的娛樂效果。3.2在線音樂系統(tǒng)功能需求分析本系統(tǒng)是基于iOS平臺(tái)開發(fā)的一款音樂播放娛樂系統(tǒng),將要應(yīng)用在iOS移動(dòng)通訊設(shè)備上,能夠盡可能的滿足用戶更方便更快捷的娛樂需求,對(duì)于一個(gè)音樂播放器聽歌,首先能夠播放本地音樂和在線搜索。用戶可以在音樂的信息界面看到所有的音樂文件。在享受歌曲的過程中,會(huì)讓用戶感覺枯燥無味。本系統(tǒng)自帶的小游戲可以有效的防止用戶等待,畫面絢麗的推箱子,可以有效緩解疲勞。選擇下列圖為本系統(tǒng)的功能模塊圖:(如圖3-2)圖3-2功能模塊圖3.2.1功能需求根據(jù)系統(tǒng)功能劃分,本系統(tǒng)詳細(xì)需求描述如下:1.音樂播放功能需求為了給用戶最好的用戶體驗(yàn),本功能模塊實(shí)現(xiàn)mp3音樂文件的播放,歌曲的切換,音樂的暫停,音樂的開始,歌曲圖片的顯示,音量的調(diào)整,隨意拖動(dòng)滾動(dòng)條來播放音樂等。2.音樂播放列表功能需求該模塊實(shí)現(xiàn)的是音樂信息的管理,包括播放哪一個(gè)音樂,本地音樂播放列表的顯示,所有的音樂信息等等。3.在線搜索音樂功能需求該模塊實(shí)現(xiàn)的是使用網(wǎng)絡(luò)API來在線搜索音樂,還包括搜索結(jié)果的正確顯示等等。4.在線音樂下載功能需求該模塊實(shí)現(xiàn)的是將通過網(wǎng)絡(luò)API搜索到的音樂下載到本地,并顯示下載列表。5.音樂視頻播放功能需求該模塊實(shí)現(xiàn)的是播放本地音樂視頻的功能6.水果連連看功能需求本模塊實(shí)現(xiàn)了水果連連看的玩法,僅使用了第一關(guān),其中實(shí)現(xiàn)了無障礙消去水果的功能。7.音樂播放系統(tǒng)設(shè)置的功能需求本模塊實(shí)現(xiàn)的是音樂播放的模式設(shè)置以及改變系統(tǒng)的主題功能第4章在線音樂播放系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)階段主要的任務(wù)是系統(tǒng)各個(gè)模塊的具體設(shè)計(jì)與實(shí)現(xiàn)4.1在線音樂播放系統(tǒng)總體架構(gòu)設(shè)計(jì)該系統(tǒng)七個(gè)模塊,分別為音樂播放界面,本地音樂播放列表界面,在線搜索界面,在線下載界面,水果連連看游戲界面,音樂視頻播放界面,音樂播放設(shè)置界面。在線音樂播放系統(tǒng)總體流程圖如圖4.1所示圖4.1總體架構(gòu)圖4.2模塊功能設(shè)計(jì)下面以具體的效果來展示各個(gè)功能模塊。4.2.1音樂播放功能模塊1實(shí)現(xiàn)mp3音樂文件的播放2歌曲的切換3音樂的暫停,音樂的開始4歌曲圖片的顯示5音量的調(diào)整6隨意拖動(dòng)滾動(dòng)條來播放音樂。音樂播放功能模塊運(yùn)行效果圖如下4.2.1-1,4.2.1-2所示。圖4.2.1-1音樂播放界面圖4.2.1-2音樂音量設(shè)置界面4.2.2音樂信息功能模塊1所有音樂播放列表的顯示2音樂的選擇運(yùn)行效果圖如下4.2.2-1所示。圖4.2.2-1音樂信息默認(rèn)界面4.2.3在線搜索音樂功能模塊1按歌曲名進(jìn)行搜索音樂2把搜索結(jié)果正確顯示到界面上圖4.2.3-1在線搜索界面圖4.2.3-2搜索我和你結(jié)果顯示4.2.4在線下載功能模塊1實(shí)現(xiàn)了在線下載的功能圖4.2.4-1在線下載默認(rèn)界面圖4.2.4-2正在下載界面顯示4.2.5水果連連看功能模塊1表達(dá)的本系統(tǒng)的實(shí)用性和娛樂性圖4.2.5-1水果連連看顯示4.2.6音樂視頻功能模塊1.實(shí)現(xiàn)了音樂視頻的播放圖4.2.6-1音樂視頻顯示圖4.2.6-1音樂視頻全屏顯示4.2.7音樂播放設(shè)置功能模塊1實(shí)現(xiàn)了系統(tǒng)播放設(shè)置功能圖4.2.7-1播放設(shè)置默認(rèn)界面圖4.2.7-2播放模設(shè)置式界面圖4.2.7-2更改系統(tǒng)主題界面第5章在線音樂播放系統(tǒng)實(shí)現(xiàn)根據(jù)設(shè)計(jì)階段的工作成果系統(tǒng)各個(gè)功能模塊實(shí)現(xiàn)的效果是比較理想的。下面是各個(gè)功能模塊的實(shí)現(xiàn)。5.1系統(tǒng)初始化的實(shí)現(xiàn)在系統(tǒng)的開始,需要實(shí)現(xiàn)一個(gè)定制的UITabBarController的控件,并且每個(gè)UITableBarItem都關(guān)聯(lián)相對(duì)應(yīng)的模塊,這是系統(tǒng)初始化核心代碼如下:-(void)createTabBarController{//創(chuàng)立可變數(shù)組NSMutableArray*tabArray=[[NSMutableArrayalloc]initWithCapacity:0];//創(chuàng)立分欄控制器UITabBarController*tabCtrl=[[UITabBarControlleralloc]init];[tabCtrl.tabBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg.png"]];//1:我的音樂MyMusicViewController*myLocal=[[MyMusicViewControlleralloc]initWithTitle:@"本地榜單"navTitle:@"本地榜單"tabImageName:@"local"];//創(chuàng)立導(dǎo)航控制器UINavigationController*navLocal=[[UINavigationControlleralloc]initWithRootViewController:myLocal];[navLocal.navigationBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg"]forBarMetrics:UIBarMetricsDefault];//添加到數(shù)組中[tabArrayaddObject:navLocal];//2:當(dāng)前播放CurrentPlayViewController*current=[[CurrentPlayViewControlleralloc]initWithTitle:@"當(dāng)前播放"navTitle:@"當(dāng)前播放"tabImageName:@"current.png"];//創(chuàng)立導(dǎo)航控制器UINavigationController*navCurrent=[[UINavigationControlleralloc]initWithRootViewController:current];[navCurrent.navigationBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg"]forBarMetrics:UIBarMetricsDefault];//添加到數(shù)組中[tabArrayaddObject:navCurrent];//3:在線音樂OnLineMusicViewController*onLine=[[OnLineMusicViewControlleralloc]initWithTitle:@"在線音樂"navTitle:@"在線音樂"tabImageName:@"online.png"];//創(chuàng)立導(dǎo)航控制器UINavigationController*navOnline=[[UINavigationControlleralloc]initWithRootViewController:onLine];[navOnline.navigationBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg"]forBarMetrics:UIBarMetricsDefault];//添加到數(shù)組中[tabArrayaddObject:navOnline];//4:正在下載列表DownLoadingViewController*downLoad=[[DownLoadingViewControlleralloc]initWithTitle:@"正在下載"navTitle:@"正在下載"tabImageName:@"download.png"];//創(chuàng)立導(dǎo)航控制器UINavigationController*navDownLoad=[[UINavigationControlleralloc]initWithRootViewController:downLoad];[navDownLoad.navigationBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg"]forBarMetrics:UIBarMetricsDefault];//添加到數(shù)組[tabArrayaddObject:navDownLoad];//系統(tǒng)菜單SysteMenu*menu=[[SysteMenualloc]initWithTitle:@"系統(tǒng)菜單"navTitle:@"系統(tǒng)菜單"tabImageName:@"setting.png"];UINavigationController*navMenu=[[UINavigationControlleralloc]initWithRootViewController:menu];[navMenu.navigationBarsetBackgroundImage:[UIImageimageNamed:@"tabbar_bg"]forBarMetrics:UIBarMetricsDefault];[tabArrayaddObject:navMenu];[menurelease];tabCtrl.viewControllers=tabArray;self.window.rootViewController=tabCtrl;[navOnlinerelease];[onLinerelease];[navDownLoadrelease];[downLoadrelease];[navCurrentrelease];[currentrelease];[navLocalrelease];[myLocalrelease];[tabCtrlrelease];[tabArrayrelease];}在下面的函數(shù)中調(diào)用該函數(shù)即可實(shí)現(xiàn)該功能.-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];//Overridepointforcustomizationafterapplicationlaunch.//調(diào)用創(chuàng)立分欄控制器函數(shù)[selfcreateTabBarController];self.window.backgroundColor=[UIColorwhiteColor];[self.windowmakeKeyAndVisible];returnYES;}5.2音樂播放的實(shí)現(xiàn)使用了iphone中一個(gè)APIAVAudioPlayer來實(shí)現(xiàn)了音樂的播放,切換,拖動(dòng)播放,另外界面上能調(diào)整音量,快進(jìn)等。主要代碼如下//播放音樂-(void)playMusicWithSongName:(NSString*)name{[selfplaylrc];NSLog(@"name=%@",name);namelabel.text=name;//首先到NSBudle里面找,如果沒找到就到本地Documents里面找NSString*path=[[NSBundlemainBundle]pathForResource:nameofType:@"mp3"];NSString*headImagePath=[[NSBundlemainBundle]pathForResource:nameofType:@"png"];NSLog(@"headimage=%@",headImagePath);if(path.length>0){//在資源里面找到音樂NSURL*musicFile=[NSURLfileURLWithPath:path];//NSLog(@"musicFile=%@",musicFile);//創(chuàng)立音樂播放實(shí)例musicPlayer.delegate=nil;[musicPlayerrelease];musicPlayer=[[AVAudioPlayeralloc]initWithContentsOfURL:musicFileerror:nil];musicPlayer.delegate=self;//可以得到波形[musicPlayersetMeteringEnabled:YES];//準(zhǔn)備播放[musicPlayerprepareToPlay];//播放音樂[musicPlayerplay];if(headImagePath.length>0){NSData*data=[NSDatadataWithContentsOfFile:headImagePath];//NSURL*headImageUrl=[NSURLURLWithString:headImagePath];UIImage*image=[UIImageimageWithData:data];headImage.image=image;}}else{//到Documents里面去找NSString*path1=[NSHomeDirectory()stringByAppendingPathComponent:@"Document/Music"];path=[NSStringstringWithFormat:@"%@/%@.mp3",path1,name];NSURL*musicFile=[NSURLfileURLWithPath:path];//創(chuàng)立音樂播放器實(shí)例[musicPlayerrelease];musicPlayer=[[AVAudioPlayeralloc]initWithContentsOfURL:musicFileerror:nil];//可以得到波形[musicPlayersetMeteringEnabled:YES];[musicPlayerprepareToPlay];[musicPlayerplay];}}5.3音樂播放列表的實(shí)現(xiàn)通過iphone自帶的控件UITableView,將歌曲列表展現(xiàn)在cell上,點(diǎn)擊播放使用的代理模式進(jìn)行回調(diào)。主要代碼如下-(void)viewWillAppear:(BOOL)animated{[superviewWillAppear:YES];NSString*path=[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/Music"];NSLog(@"CCC=%@",path);//創(chuàng)立文件管理實(shí)例NSFileManager*fm=[NSFileManagerdefaultManager];//subpathsAtPath獲得路徑下的所有子文件,也就是歌名NSArray*array=[fmsubpathsAtPath:path];for(NSString*nameinarray){if([namehasSuffix:@".mp3"]){NSLog(@"s=%@",name);NSArray*songName=[namecomponentsSeparatedByString:@"."];if([songNamecount]>0){NSString*song=[songNameobjectAtIndex:0];if(![[musicDictallValues]containsObject:song]){//存進(jìn)字典[musicDictsetObject:songforKey:[NSStringstringWithFormat:@"%i",[musicDictallKeys].count]];}}}}NSLog(@"dictis%@",musicDict);[[DownloadManagersharedDownloadManager].musicDictionaryrelease];[DownloadManagersharedDownloadManager].musicDictionary=[[NSMutableDictionaryalloc]initWithDictionary:musicDict];[mTableViewreloadData];}//給每個(gè)cell數(shù)據(jù)-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{MyMusicCell*cell=[tableViewdequeu

溫馨提示

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

評(píng)論

0/150

提交評(píng)論