版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、作 者 聲 明本人以信譽鄭重聲明:所呈交的學位畢業(yè)設(shè)計(論文),是本人在指導(dǎo)教師指導(dǎo)下由本人獨立撰寫完成的,沒有剽竊、抄襲、造假等違反道德、學術(shù)規(guī)范和其他侵權(quán)行為。文中引用他人的文獻、數(shù)據(jù)、圖件、資料均已明確標注出,不包含他人成果及為獲得東華理工大學或其他教育機構(gòu)的學位或證書而使用過的材料。對本設(shè)計(論文)的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本畢業(yè)設(shè)計(論文)引起的法律結(jié)果完全由本人承擔。本畢業(yè)設(shè)計(論文)成果歸東華理工大學所有。特此聲明。畢業(yè)設(shè)計(論文)作者(簽字): 簽字日期: 年 月 日本人聲明:該學位論文是本人指導(dǎo)學生完成的研究成果,已經(jīng)審閱過論文的全部內(nèi)容,并能
2、夠保證題目、關(guān)鍵詞、摘要部分中英文內(nèi)容的一致性和準確性。學位論文指導(dǎo)教師簽名: 年 月 日東華理工大學畢業(yè)論文 目錄目 錄摘 要1ABSTRACT21.緒 論31.1 Android影音播放器課題背景31.2 Android影音播放器課題目的和意義31.3 Android影音播放器專業(yè)名詞解釋42. Android播放器開發(fā)技術(shù)基礎(chǔ)52.1 Java 基礎(chǔ)支持52.2 UI界面設(shè)計52.3 Android SDK/ADT52.4 Android Media Player52.5 SQlite53.Android播放器需求分析63.1 Android播放器結(jié)構(gòu)分析63.2 功能性需求分析63.2
3、.1 音樂播放器功能性需求63.2.2 視頻播放器功能性需求73.2.3 數(shù)據(jù)庫功能性需求73.3 非功能性需求分析73.4 Anroid 影音播放器系統(tǒng)可行性分析83.4.1 開發(fā)環(huán)境與開發(fā)工具83.4.2 可行性分析83.4.3 實現(xiàn)功能類的分析84. 播放器總體設(shè)計84.1 播放器設(shè)計目標94.2 播放器設(shè)計原則94.3 播放器界面設(shè)計94.4 Android播放器測試流程設(shè)計114.4 數(shù)據(jù)庫設(shè)計114.4.1 創(chuàng)建數(shù)據(jù)庫114.4.2 數(shù)據(jù)庫需求分析114.4.3 數(shù)據(jù)庫邏輯設(shè)計124.5播放器程序架構(gòu)介紹134.5.1 Android播放器功能管理設(shè)計145.Android播放器視
4、頻界面設(shè)計165.1界面講解165.2 VIDEO界面說明175.3 VIDEO主界面功能實現(xiàn)176.Android播放器音頻界面主界面196.1 Android播放器音頻主界面講解196.2 Android播放器音頻主界面實現(xiàn)197.Android播放器組件217.1切換界面控制的實現(xiàn):217.2重力感應(yīng)開關(guān)的實現(xiàn):217.3播放列表開關(guān)的實現(xiàn):227.4列表編輯開關(guān)的實現(xiàn):237.5均衡器開關(guān)的實現(xiàn):247.6數(shù)據(jù)庫連接的實現(xiàn):248. 系統(tǒng)測試268.1 系統(tǒng)測試簡述268.2 系統(tǒng)功能測試268.2.1 音樂播放測試268.2.2 視頻播放測試268.2.3 組件測試268.2.4 本
5、地文件添加測試278.2.5 啟動Logo測試278.2.6 測試結(jié)果27總結(jié)28致 謝29參考文獻3038摘 要 在信息化時代日新月異的2016澤字節(jié)(ZB)之年,信息化的社會已經(jīng)越來越向人們的生活貼近,各種電子產(chǎn)品和信息共享在世界上越來越廣泛,而視頻和音樂,無疑在信息傳播途徑方面占據(jù)了大份額。而在市場占有率遠超IOS和其他類型的系統(tǒng)的Android是設(shè)計軟件的最佳平臺之一。本軟件基于Android平臺設(shè)計的視頻音樂播放器,小巧玲瓏,功能完備,給Android用戶提供的新的選擇。本文主要講述了如何開發(fā)播放器。第一張是緒論以及第二章的Android播放器的開發(fā)技術(shù)基礎(chǔ),第三章講述了Androi
6、d播放器的需求分析,從第四章開始正式設(shè)計,第四章描述的主要是播放器的設(shè)計理念和設(shè)計要求。第五章寫的是Android播放器的架構(gòu)介紹。第六章寫的是Android播放器的音樂界面的設(shè)計和實現(xiàn),第七章寫的是Android播放器視頻播放界面的設(shè)計和實現(xiàn),第八章也描繪的是Android播放器的組件的介紹和實現(xiàn)。最后一章,也是第九章,寫的則是完成后系統(tǒng)性的測試過程和測試需求。本文主要論述了在Android開發(fā)的基礎(chǔ)之上的播放器軟件,在經(jīng)過詳盡的需求設(shè)計和翔實的科學分析,設(shè)計的視頻與音樂的播放器軟件,該軟件可以實現(xiàn)不同格式的視頻和音樂的播放器,包括.RMVB,.AVI, .mp3等等,功能應(yīng)有盡有,并且后臺
7、占有率小,播放流暢清晰等優(yōu)點。本文的緒論部分敘寫了該播放器的應(yīng)用條件背景和要求的各種專業(yè)名詞的解釋和應(yīng)用到的核心理論等等。第一部分介紹了該播放器使用的技術(shù)條件和應(yīng)用平臺以及一些理論使用概念。第二部分對播放器的功能進行了分析和講解。第三部分講述了播放器的使用和界面分析。第四部分是對播放器的系統(tǒng)的設(shè)計的綜合詳述。最后的收尾部分則是在完成該論文時得到的一些心得體會。關(guān)鍵字:Android;播放器;視頻;音樂 東華理工大學畢業(yè)論文 緒論ABSTRACTIn the information with each passing day of 2016 zettabytes (ZB) year, the i
8、nformation society has become increasingly to the lives of people close to, all kinds of electronic products and information sharing more and more widely in the world, and music videos and undoubtedly in information dissemination way occupy the larger share.And in the market share far more than the
9、Android to IOS and other types of systems is one of the best platform for software design. The software based on the Android platform design, music player, video, small and exquisite, and the function is complete, to Android users provide the new choice. This paper mainly discusses the player softwa
10、re on the basis of Android development, in after the detailed design requirements and informative scientific analysis and design of the video and music player software, the software can achieve different formats of video and music player, including.RMVB,.AVI,.Mp3, and so on, everything, and the back
11、ground share of the small, smooth and clear playback and other advantages.The introduction part of this article narrates the interpretation and application of the player application conditions and requirements of a variety of professional terms to the core theory and so on. The first part introduces
12、 the player uses technical conditions and application platform and some theory using the concept. The second part of seeding put function are analyzed and explained. The third part tells the story of player and interface analysis. The fourth part is the player system design of comprehensive details.
13、 Finally ending part is obtained in the paper completed some experience.KeyWord:Android;Media Player;Video;Music1.緒 論1.1 Android影音播放器課題背景本課題是建立在Android在中國的市場占有率越來越高,而基于Android的軟件的需求也越來越多樣化,在Android市場,對于現(xiàn)在多媒體的大行其道,播放器的重要性不言而喻,本課題既是針對多媒體的播放器而設(shè)計的的音樂播放器和視頻播放器綜合的影音播放器。過去,在手機里有專門的音樂播放器和視頻播放器,音樂播放器和視頻播放器互不
14、兼容,導(dǎo)致打開音樂和視頻需要多開幾個后臺程序,十分麻煩,而現(xiàn)在將音樂播放d器和視頻播放器整合到一個Android APP中不僅節(jié)約后臺資源,更可以節(jié)省用戶的時間,提高效率。手機在人們的生活中不可或缺,龐大的中國Android市場使各種Android APP都有展現(xiàn)的機會,手機里的影音播放器已經(jīng)是裝機必備的軟件,本課題的設(shè)計目的亦在于此。1.2 Android影音播放器課題目的和意義本設(shè)計采用的是基于JAVA的Eclipse的Android的插件寫的APP,Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng)。Android影音播放器的課題目的是開發(fā)一個能兼容多種格式的音頻和視頻的播放
15、器。因為在生活中能夠視頻播放的有多種軟件,能夠播放音頻的也有很多軟件,但是同時兼容的并不多。本播放器支持視頻和音頻的多種格式,在后臺也能運行音頻播放,在視頻運行的時候離開會自動關(guān)閉視頻的播放。多媒體在我們的社會生活中早已是不可或缺的一部分,在各個行業(yè)和領(lǐng)域都有或多或少的作用,而多媒體播放器就是其中最為典型的表現(xiàn)。在Android市場,各種Android音樂播放器和視頻播放器都有,但是綜合兩種支持全部格式的并不多。圖1-1 Android市場音頻視頻對比圖由圖1-1可以看出,播放器雖然在市場上占有極大的比例,但是綜合兩種功能的仍然不多,課程設(shè)計的就是針對這個問題設(shè)計的,在Android上支持各種
16、格式的音樂和視頻,在UI設(shè)計上采用了清新的風格,利用了Fragment和Media Player和surface View控件的影音播放器使播放器擁有極小的內(nèi)存占有率和完備的功能。1.3 Android影音播放器專業(yè)名詞解釋Android:Android是一種建筑在Linux的開源的自由模式的的操作系統(tǒng),主要使用于如智能手機和平板電腦等的設(shè)備。 Linux: Linux是一種能夠無償使用和開源的類似于Unix操作系統(tǒng),是一個支持多用戶類型,支持多任務(wù)數(shù)量,支持多線程運行和支持多CPU運行的系統(tǒng)。 JAVA:Java語言是美國SUN公司為了能夠在消費電子產(chǎn)品上開發(fā)應(yīng)用程序而開發(fā)出的一種跨平臺編程
17、語言。Eclipse:Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就Eclipse而言,它只是一個軟件,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)UI:UI即User Interface(用戶界面)的簡稱。UI設(shè)計是對軟件的人體和機器相互交流,操作的邏輯運行和為了保持界面的美觀和優(yōu)美的整體設(shè)計。Fragment:為解決屏幕大小不同而必須修改界面布局而產(chǎn)生的控件,完全可以當成Activity的一個界面的組成部分,擁有自己的生命周期和接收,處理用戶的時間Media p
18、layer: Android中很重要也很復(fù)雜的媒體播放器部分的架構(gòu),基于Open Core的庫實現(xiàn),在Android的界面中,MUSIC和VIEDO兩個應(yīng)用程序都是調(diào)用Media Player實現(xiàn)的Surface View控件:Android一種特殊的視圖,擁有獨立的繪畫界面,幾乎不會占用主線程資源SQlite: SQLite,是一款小型的數(shù)據(jù)庫軟件,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。
19、東華理工大學畢業(yè)論文 Android播放器需求分析2. Android播放器開發(fā)技術(shù)基礎(chǔ)2.1 Java 基礎(chǔ)支持 Java語言是美國SUN公司為了能夠在消費電子產(chǎn)品上開發(fā)應(yīng)用程序而開發(fā)出的一種跨平臺編程語言。在移動互聯(lián)網(wǎng)蓬勃發(fā)展的今天,它所具有的跨平臺,面向?qū)ο?,安全等特點非常符合移動互聯(lián)網(wǎng)的需要,成為適應(yīng)互聯(lián)網(wǎng)時代發(fā)展要求的一代成功語言。JAVA基礎(chǔ)語言是我編寫這款播放器的核心語言,在所有的架構(gòu)里都有涉及。2.2 UI界面設(shè)計UI是指對軟件的美化的設(shè)計,涉及到界面和操作邏輯和人機交互,是軟件設(shè)計的一部分,是為了讓軟件變得個性有品味和操作變得舒適簡單自由,充分體現(xiàn)了軟件的定位。UI是一門高深
20、的技術(shù),所以我只能以我的微薄學識做一個比較精簡的界面。2.3 Android SDK/ADTAndroid SDK/ADT是Google公司推出的軟件開發(fā)包和虛擬機,在實際設(shè)計Android APP是尤為重要的一部分。其中,Android SDK是特定的軟件包和軟件框架及硬件平臺和操作系統(tǒng)等開發(fā)工具的集合,包含了許多Anodroid開發(fā)所必須的Package。而Android ADT是Android在Eclipse上的開發(fā)工具,在Eclipse沒有真機調(diào)試的情況下的選擇,兼容各種版本的Android和平臺,缺點是運行速度緩慢。2.4 Android Media PlayerAndroid Me
21、dia Player是Android中重要且復(fù)雜的媒體播放器部分的架構(gòu),在Android底層是基于OpenCore(PacketVideo)的庫實現(xiàn)的,基礎(chǔ)的Android的界面上,Music和Video兩個應(yīng)用程序都是調(diào)用Media Player實現(xiàn)的。通俗來說,就是Android系統(tǒng)自帶的播放架構(gòu),在本播放器器中,同樣選用了Media Player架構(gòu)。2.5 SQliteSQLite,是一類小型的數(shù)據(jù)庫軟件,是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它囊括在一個比較小的C類數(shù)據(jù)庫中。它能夠支持多種比較主流的操作系統(tǒng),同時能結(jié)合許多種的程序語言類,比如C#,JAVA,PHP,TCL,ODBC接口,比起P
22、ostgreSQL和MySQL等開源的數(shù)據(jù)庫軟件來說,SQLite作為一個小型的數(shù)據(jù)庫處理速度比這些數(shù)據(jù)庫軟件都快。SQLite第一個版本在2005級被編寫出來,到現(xiàn)在已經(jīng)有16年之久了,SQLite也迎來了最新的版本。東華理工大學畢業(yè)論文 Android播放器需求分析3.Android播放器需求分析3.1 Android播放器結(jié)構(gòu)分析播放器與我們的生活息息相關(guān),各種場合都有播放器的參與,會議,展覽都不可或缺。而Android播放器建立在Android系統(tǒng)上,在移動工具上擁有廣泛的用途。本播放器是以Android SDK/ADT為平臺,Eclipse為開發(fā)工具,Java為核心語言設(shè)計的播放器。
23、擁有5個界面,a.啟動界面 b.音頻播放界面c.音頻播放列表編輯界面 d.視頻播放界面e.視頻播放列表編輯界面,以Fragment為界面切換技術(shù),Surface View為繪圖容器的Android程序。這些技術(shù)在移動設(shè)備上已經(jīng)被廣泛應(yīng)用,完全可以獨立安裝,沒有任何的阻礙性和環(huán)境限制性。預(yù)計界面架構(gòu)如圖所示 最上層audio Fragment次上層,Video Fragment次下層,surface View 最下層 Frame Layout圖3-1 結(jié)構(gòu)圖如圖3-1所示,界面架構(gòu)有4層,負責音頻界面的audio Fragment,次上層的視頻界面的Video Fragment,負責繪畫圖層的S
24、urface View,負責布局的Frame Layout,依次覆蓋,用戶初始是音頻界面,通過界面跳轉(zhuǎn)可以切換到視頻界面,但是次下層和最下層是用戶無法接觸和使用的。在我的設(shè)計中,使用Fragment控件來控制視頻和音頻的無縫切換,如圖3-2,因為如果音頻是視頻在兩個Activity中實現(xiàn)的話,代碼雖然彼此獨立但是無法無縫切換,而如果在一個Activity中實現(xiàn)的話,雖然可以無縫切換,但是可讀性差,很難管理。3.2 功能性需求分析3.2.1 音樂播放器功能性需求(1)播放本地音樂,提供音樂播放的基本功能,目前支持AAC LC/LTP,HE-AACv1(AAC+), HE-AACv2(echanc
25、ed ,AAC+),AMR-NB, AMR-WB, FLAC,MP3,MIDI,Vorbis,PCM/WAVE等格式。(2)顯示聲音波段表示,根據(jù)聲音波段產(chǎn)生震動的波段.通過設(shè)置監(jiān)聽來采集數(shù)據(jù),獲得波形數(shù)據(jù),然后以頻譜的方式顯示在界面上。(3)音樂均衡器,在不同的心情和時候,可以選擇不同的播放效果。比如在鄉(xiāng)村,城市和郊區(qū)可以選擇不同的播放體驗,用戶可以通過調(diào)節(jié)音樂均衡器,以滿足不同音質(zhì)的需求,通過調(diào)整均衡器的頻波來控制音樂的播放效果。(4)循環(huán)模式選擇,可以自主選擇循環(huán)播放的方式,可以隨機播放,循環(huán)列表播放和單曲循環(huán),在聽到心儀的歌曲時可以選擇單曲循環(huán),欣賞歌手的專輯之類的可以循環(huán)列表播放,而
26、聽選定的播放列表時可以隨機播放。(5)重力感應(yīng),用戶在不同的地方通常會在以不同的方式放手機,或橫屏或豎屏,提供重力感應(yīng)改變屏幕的縱橫比來舒適化用戶的觀看體驗,播放器也提供豎屏和橫屏兩種播放體驗。3.2.2 視頻播放器功能性需求(1)本地的視頻格式的播放功能,作為播放器,核心功能就應(yīng)該是能夠的播放視頻文件。移動設(shè)備一般不會支持對解碼器要求高的格式文件,根據(jù)Android Media Player的官方文檔,支持以下格式并保持流暢:VIdeo H.263 X X 3GPP(.3gp)、MPEG -4(.MP4)、H.264 AVC X 3GPP(.3gp)、MPEG-4 SP X 3GPP(.3g
27、p)(2)能在本地定位視頻文件,在播放器中能夠自定義播放列表,能夠訪問不同位置的視頻文件,當然,也不需要將視頻文件放在固定的位置,這不利于用戶的體驗,用戶也可以建一個存放視頻文件的文件夾,存放在任何可以讀取的文件夾下,優(yōu)化了用戶體驗。(3)自主搜索文件,本播放器能夠自主搜索SD card中的所有支持的視頻文件的掃描,在智能搜索設(shè)計中,可以通過media scanner對SD card進行掃描,包括自動搜索和自助添加。同時添加到播放列表,一般當視頻文件過多時,手動添加更為方便。(4)重力感應(yīng),用戶在不同的地方通常會在以不同的方式放手機,或橫屏或豎屏,提供重力感應(yīng)改變屏幕的縱橫比來舒適化用戶的觀看
28、體驗,播放器也提供豎屏和橫屏兩種播放體驗。3.2.3 數(shù)據(jù)庫功能性需求(1)能夠保存本地列表中歌曲的具體信息,例如歌曲名稱和歌手信息等。(2)能夠自由讀取和修改,確保用戶對列表的可操作性。(3)保護數(shù)據(jù)不被誤操作而損壞或者丟失3.3 非功能性需求分析非功能性需求分析分為三個方面:(1)畫面簡潔,布局合理,條理清晰,讓人一目了然,有良好的用戶體驗和交互。(2)保存音頻視頻列表在本地,不會損壞或者丟失,不會給用戶帶來額外的時間消耗和成本。(3)所有的音頻視頻文件收到保護,不會因為錯誤的操作而丟失或者損壞。3.4 Anroid 影音播放器系統(tǒng)可行性分析3.4.1 開發(fā)環(huán)境與開發(fā)工具本播放器是的開發(fā)采
29、用Eclipse8集成開發(fā)環(huán)境作為開發(fā)平臺,選用Eclipse ADT作為虛擬Android環(huán)境,要求Android 4.0環(huán)境,1.5以上的ADT插件和1.6以上的JAVA環(huán)境 ,SDK的版本不能低于4.0。3.4.2 可行性分析本播放器是基于Android用Eclipse ADT開發(fā)的多媒體播放器,實現(xiàn)播放器將用到以下幾種技術(shù):(1):Ui設(shè)計播放器的界面和側(cè)邊欄(2):JAVA主要用來處理播放器的邏輯以及跳轉(zhuǎn)(3):Media Player處理播放器中音樂和視頻的播放(4):開發(fā)平臺采用Android+Eclipse+ADT(5):數(shù)據(jù)庫是SQ Lite輕型數(shù)據(jù)庫根據(jù)以上需求的效果,該播
30、放器的效果是完全可以實現(xiàn)的3.4.3 實現(xiàn)功能類的分析Activity:界面類,負責界面的實現(xiàn)和規(guī)劃。Fragment:組件類,可以解決不同機型的分辨率不相同的問題,并且切換頁面。Equalizer:頻譜類,負責顯示音樂界面的頻譜顯示。Visualizer:均衡器類,負責顯示和調(diào)整音樂節(jié)目的均衡器。SetLooping:對象調(diào)用,負責管理播放列表的播放模式。LIST類:列表類,負責管理整個播放器的列表,包括音樂列表,視頻列表等。Button類:按鍵類,負責管理整個播放器的按鍵。MobilePlayer:核心播放類,負責管理整個播放器的視頻和音樂播放。OnStart/stopTrackTouch
31、:進度條類,負責管理整個播放器的進度東華理工大學畢業(yè)論文 Android播放器總體設(shè)計4. 播放器總體設(shè)計4.1 播放器設(shè)計目標播放器的目標,是基于視頻和音樂的播放而設(shè)計的軟件,開發(fā)一個界面精簡,運行流暢,舒適性性高,內(nèi)存占有率低的軟件。4.2 播放器設(shè)計原則(1)精簡性播放器的開發(fā)遵循精簡的原則,沒有多余的界面和插件,一目了然不會給用戶混亂的用戶體驗,讓內(nèi)存利用率降低,后臺播放也不會占用很多移動設(shè)備的Android系統(tǒng)的內(nèi)存。(2)流暢性播放器的開發(fā)力求流暢,是否流暢是用戶最大的體驗,在音樂的播放和視頻的觀看上,小小的卡頓就會對用戶造成極差的用戶體驗,因此,流暢性是本播放器最基礎(chǔ)的保證。(3
32、)舒適性一個軟件的成功之處在于是否老少咸宜,本播放器的界面清晰,功能簡單,無論是白領(lǐng)高層,亦或是工人階級,都能舒適地使用本軟件,易于上手,不會給用戶造成使用復(fù)雜的感覺。(4)合理性利用Android ADT的測試,對Android 4.0以上的系統(tǒng)都有很好的適應(yīng)性,軟件對環(huán)境的要求不高,Android 4.0是市面上普遍的Android版本,不依賴于特定的軟件環(huán)境。(5)標準性 播放器的開發(fā)中遵守統(tǒng)一的標準,無論從數(shù)據(jù)的處理程序,的測試,程序的設(shè)計,開發(fā)都要遵守相應(yīng)的標準和規(guī)范。4.3 播放器界面設(shè)計依據(jù)相關(guān)文獻和設(shè)計目標,本播放器分為三個界面,音樂播放器,視頻播放器和本地的搜索列表。 音頻列
33、表播放控制音樂頻譜側(cè)邊欄圖 4-1 音樂播放器界面視頻列表視頻界面視頻播放控制 視頻播放器界面靜音控制視頻列表視頻播放控制 側(cè)邊欄圖 4-2 視頻播放器界面 本地視頻搜索列表本地音樂搜索列表頂部欄圖4-3 本地列表界面分為三個界面:音頻界面,視頻界面,本地列表界面:圖4-1代表音頻界面包括四個組件,音樂頻譜顯示,音頻播放控制,音頻播放列表,音頻界面?zhèn)冗厵?。圖4-2代表視頻界面包括三個組件,視頻播放控制,視頻界面,視頻播放列表,視頻界面?zhèn)冗厵?。圖4-3代表本地列表界面包括不相干的兩個組件,音樂搜索列表和視頻搜索列表和頂部保存欄。東華理工大學畢業(yè)論文 Android播放器總體設(shè)計4.4 Andro
34、id播放器測試流程設(shè)計開始歡迎界面 音樂播放界面本地列表添加音頻音樂列表編輯本地列表添加視頻視頻列表編輯視頻播放界面結(jié)束 圖4-4 播放設(shè)計流程圖如圖4-2.點擊Android播放器打開程序,經(jīng)過歡迎界面,進入主界面,即音樂播放界面,編輯音樂列表,在列表中添加本地音頻,保存后播放/暫停音頻。切換到視頻播放界面,編輯視頻列表,在列表中本地視頻,保存后播放/暫停視頻。測試后結(jié)束。4.4 數(shù)據(jù)庫設(shè)計4.4.1 創(chuàng)建數(shù)據(jù)庫本城市休閑信息網(wǎng)站建設(shè)運用的數(shù)據(jù)庫為SQlite,實際需求的環(huán)節(jié)上考慮,主要負責保存本地列表的一些信息,例如音頻文件的名稱信息和視頻文件的名稱信息等,主要運行SQL查詢語句在“查詢分
35、析器”中實現(xiàn)。4.4.2 數(shù)據(jù)庫需求分析數(shù)據(jù)庫分析是播放器保存本地列表的一個不可獲取的環(huán)節(jié),是指需要對所有的存儲數(shù)據(jù)進行分析和整理,目的是為了使存儲結(jié)構(gòu)具有穩(wěn)定性和可維護性,我們分析實體可以確定系統(tǒng)中各個數(shù)據(jù)表之間的關(guān)系,更利于保存數(shù)據(jù)庫的本地列表中的安全。介于播放器小巧的設(shè)計初衷,只設(shè)計兩張表,4-1和4-2視頻文件列表和音頻文件列表。視頻文件列表:durationpathlistnameVideo圖4-5 Video表設(shè)計音頻文件列表:durationlistpathnameaudio 圖4-6 Audio表設(shè)計4.4.3 數(shù)據(jù)庫邏輯設(shè)計數(shù)據(jù)自身是被存放在物理數(shù)據(jù)庫當中的,管理員安全和系統(tǒng)
36、地維護著這些數(shù)據(jù),所以用戶訪問的不是數(shù)據(jù)本身而是元數(shù)據(jù)。播放器的以為其精簡的設(shè)計初衷,具體的存儲步驟有,具體存儲數(shù)據(jù)的步驟有:建立文件存放數(shù)據(jù)庫文件。打開SQLite,單機新建數(shù)據(jù)庫,查找到物理存儲路徑并以進行數(shù)據(jù)庫連接,以本地列表方式連接獲取數(shù)據(jù)并顯示。該播放器一共要建立兩張表,如表4-1,表4-2實現(xiàn)兩個本地列表的設(shè)置。表4-1 視頻文件本地列表屬性類型字段內(nèi)容允許空定義Video_namevarchar50文章類型否主鍵Video_pathvarchar50文章類型listvarchar50文章類型durationinteger整數(shù)表4-2 音頻文件本地列表屬性類型字段內(nèi)容允許空定義Au
37、dio_namevarchar50文章類型否主鍵Audio_pathvarchar50文章類型listvarchar50文章類型durationinteger整數(shù)東華理工大學畢業(yè)論文 Android播放器總體設(shè)計4.5 程序架構(gòu)介紹下圖為結(jié)構(gòu)圖,為了標識特意用紅字標注。圖5-1 Package作用圖如圖5-1,播放器設(shè)計與實現(xiàn)一共分為三個部分,視頻界面和列表,音頻界面和列表和相關(guān)組件,要實現(xiàn)的功能有:視頻界面和列表要負責播放視頻和顯示視頻控制,音頻界面和列表要負責播放音頻,顯示頻譜和信息,并且顯示音頻控制,相關(guān)組件包括側(cè)邊欄中的界面切換,重力感應(yīng)的開啟和關(guān)閉,播放列表的開啟和關(guān)閉,播放列別的編
38、輯的入口,均衡器的開啟和關(guān)閉。其中BuildConfig負責運行設(shè)置,VideoFragment負責視頻界面視圖,IUpdateDisplayState負責切換視圖,AudioFragment負責音頻界面視圖。Utils負責工具類,Constants是定義類,AudioPlayerService是服務(wù)類,VideoDisplayList是視頻列表顯示,VideoDisplayitem是視頻顯示,EditDisplayIte負責基礎(chǔ)顯示,DisplayItem是界面顯示,AudioDisplayList是音頻列表顯示,AudioDisplayitem是音頻顯示,adapter是接口,db是數(shù)據(jù)庫
39、,LogoDisplay是Logo界面顯示,EditListActivity是列表界面顯示,DisplayActivity是主界面顯示。4.5.1Android播放器功能管理設(shè)計播放視頻視頻控制視頻界面和列表播放音頻音頻界面和列表Android播放器音頻控制相關(guān)組件顯示頻譜和信息數(shù)據(jù)庫本地列表切換界面控制列表編輯開/關(guān)均衡器開/關(guān)播放列表開/關(guān)重力感應(yīng)開/關(guān)圖5-2播放器管理設(shè)計圖圖5-2顯示了Android播放器的功能設(shè)計,Android播放器分為視頻界面和列表,音頻界面和列表,相關(guān)組件,其中視頻界面和列表包括了播放視頻,視頻播放控制和播放視頻三個功能,音頻界面和列表,其中有播放音頻,音頻播
40、放控制,顯示頻譜和信息,而相關(guān)組件則有切換界面控制,重力感應(yīng)開關(guān),播放列表開關(guān),列表編輯開關(guān),均衡器開關(guān)和數(shù)據(jù)庫本地列表等功能。東華理工大學畢業(yè)論文 Android播放器視頻界面設(shè)計5.Android播放器視頻界面設(shè)計視頻界面是Android播放器用來播放視頻的界面,包含主界面,進度條,側(cè)邊欄和控制欄的總界面。5.1界面講解Android播放器視頻主界面主要有Activity,Button,ImageView,Animation等幾個類,其中Activitu負責界面顯示,Button負責按鈕,ImageView圖片顯示,Animation則是動畫的實現(xiàn)。其中Activity是將以在Consta
41、nts中的定義標識符來確定是音頻界面還是視頻界面,在Constants中:Public static final int DISPLAY_TYPE_AUDIO=0;public static final int DISPLAY_TYPE_VIDEO=1;而在定義中當DISPLAY_TYPE_VIDEO=1時置為視頻界面,Button則有OnClick類來負責,例如 public void BtnOnClick中,通過switch循環(huán),通過按鈕的位置來確定按鈕的功能,來產(chǎn)生不同的效果,用case循環(huán)一一對應(yīng),例如當接收case時,系統(tǒng)return this.activity.playNext()
42、;這是控制欄中播放下一曲的功能。相對應(yīng)的,ImageView是設(shè)置圖片的類,用來顯示在資源中的設(shè)定好的圖片來作為按鈕的標志,在Activity中,按鈕的圖片的顯示都是通過這個類畫在主顯示屏中的。在源代碼中,也有例子來說明ImageView類的使用.this.ivMute=(ImageView) this. root.findViewById().也正是這行代碼,讓一個按鈕以圖標的方式存在于主界面,而不是一個白色的Button按鈕。接下來說到的就是Animation類,Animation是Android中一個頗為特殊的類,他一般用來控制菜單的隱藏和顯示,在一般的情況下,Animation有兩種動
43、畫模式,tweened animation和frame by frame,本播放器采用的是后者。 在源代碼中public void onAnimationRepeat(Animation paramAnimation)public void onAnimationStart(Animation paramAnimation)控制著Animation的顯示和隱藏。在界面中,一共分為兩個界面,一個是視頻界面。視頻界面用的是MediaPlayer中的Video,所以在界面中支持主流的格式。而Activity和Fragment作為相互依存的關(guān)系,F(xiàn)ragmentManager能夠自由新建和銷毀Frag
44、ment界面達到切換的目的。在界面中,還需實現(xiàn)不同的功能。比如基礎(chǔ)的播放控制,上一曲,下一曲,播放/暫停,重力感應(yīng)設(shè)置,播放列表設(shè)置,靜音設(shè)置。這都是一個播放器所應(yīng)該具備的。在界面中,應(yīng)該注意這些功能鍵的布局設(shè)置,側(cè)邊欄的設(shè)置應(yīng)該設(shè)置在明顯且不干擾用戶播放設(shè)置的位置,右方隱藏即可。播放控制界面應(yīng)該放在界面的最下方,不會影響頻譜的顯示。5.2 VIDEO界面說明圖6-1 音樂界面圖界面說明:如圖6-1,Activity負責是視頻界面的播放,Animation負責是側(cè)邊欄,imageView負責是按鈕的界面,Button則是各種功能的按鈕。其中進度條的設(shè)置類TrackingTouch在圖中沒有說明
45、。5.3 VIDEO主界面功能實現(xiàn)主界面播放視頻實現(xiàn):在主界面中,主界面的視頻播放主要依靠于Android自帶的Media Player的播放功能,通過displayStateSwith來切換播放狀態(tài),displayPause和displayContinue來暫停和繼續(xù)視頻,用OnCreateView來獲取對象。public View onCreateView (LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup, Bundle paramBundle)從這里開始判斷activity的getOrientation和getRe
46、sources的值if(this.activity. getOrienta tion()= 4)if (this.activity.getResources(). getConfiguration().orientation = 2)給this.root賦值,調(diào)用initScreenView和setGravityLockedImage來顯示視圖。然后this.activity.get VideoDisplayList().getDisplayListName()和video_default的地址相同時且SIZE不等于0。進度條控制視頻實現(xiàn):進度條的控制有專門的類OnstartTrackingT
47、ouch和OnStopTrackingTouch來控制,前者在開始拖動進度條的時候調(diào)用,后者在結(jié)束拖動進度條的時候調(diào)用。public void onStartTrackingTouch(SeekBar paramSeekBar)開始拖動進度條,調(diào)用onStartTrackingTouch函數(shù)VideoFragment. this. activity. setSeeking(true);public void onStopTrackingTouch(SeekBar paramSeekBar)結(jié)束拖動進度條,調(diào)用onStopTrackingTouch函數(shù)。int i = paramSeekBar.
48、 getProgress();VideoFragment.this.activity.seekVideoPosition(i);按鈕的實現(xiàn):Button是Android的一個常用的功能,他的功能相當于一個觸發(fā)器,即當什么時候做什么事,不過這個當什么時候已經(jīng)被固定,即這個按鈕被點擊的時候,本界面的按鈕相當之多,代碼也相當繁多,不一一列舉。Animation的實現(xiàn):Animation的使用在APP中習以為常,在XML文件中定義動畫效果,用Repate和Start來控制動畫的開關(guān)。public void onAnimationRepeat(Animation paramAnimation 動畫關(guān)閉時
49、調(diào)用onAnimationRepeat函數(shù) public void onAnimationStart(Animation paramAnimation) 動畫打開時調(diào)用onAnimationStart函數(shù) 東華理工大學畢業(yè)論文 Android播放器音頻界面主界面6.Android播放器音頻界面主界面6.1 Android播放器音頻主界面講解圖7-1 Video界面圖Android播放器音頻界面主界面的類其實有很多,但是有一部 分被我細化到播放器組件中去了。在這里講的主要是tvAudioTitle(歌曲標題和信息)類,rgEqualizer(均衡器)類(均衡器實際屬于組件類,這里提出,主要是以為
50、波譜是顯示在音頻主頁面上),Button類(按鈕類),Activity類。主要來講,tvAudioTitle即使懸浮在最上方的歌曲和信息類,Text的具體內(nèi)容會從歌曲中提取this.tvAudioTitle.setText(localAudioDisplayItem.getName().而Equlizer中關(guān)聯(lián)的visualizer就是頻譜的實現(xiàn)類,public void updateVisualizerFxAndUI(MediaPlayer paramMediaPlayer),Button在Video界面中已講解,功能類似,不再贅述。Activity則是音樂播放器的Media Player,
51、頻譜正是監(jiān)聽Activity才能將音樂導(dǎo)出為頻譜顯示在Activity中。public void updateVisualizerFxAndUI(MediaPlayer paramMediaPlayer)6.2 Android播放器音頻主界面實現(xiàn)tvAudioTitle(歌曲信息)實現(xiàn):tvAudioTitle定義了播放器的歌曲的標題和信息,從歌曲中獲得歌曲名字和歌手等信息,再用TextView的方式顯示在主界面上,代碼也非常簡單:把歌曲中獲得的值傳給this.tvAudioTitle和this.tvAudioArtist.this.tvAudioTitle = (TextView)this.
52、root.findViewById();this.tvAudioArtist =(TextView)this.root.findViewById();this.tvAudioTitle.setText(localAudioDisplayItem.getName();this.tvAudioArtist.setText(localAudioDisplayItem.getArtist();顯示tvAudioTitle.setText(標題)和tvAudioArist.setText(信息)來顯示this.tvAudioTitle.setText("");this.tvAudio
53、Artist.setText("");Visualizer類實現(xiàn):對于實現(xiàn)音樂的頻譜顯示,需要一定的普及知識。如果我們想要了解音樂的頻譜顯示方面的知識,就需要了解關(guān)于FFT的知識。簡單來說,就是把連續(xù)的一類波形或者信號強度轉(zhuǎn)成換離散狀的頻譜。依我之見,波形即是信號的強度的一種表現(xiàn),或者說音響的輸出的功率的輸出越大,功率越高,音量就邊變得越大。頻譜反映的是一個音樂在固定的一段時間內(nèi)的時段里,聲音的震動的頻率的一種體現(xiàn),不知道理解的對不對。論文的音樂頻譜是仿照一個例子寫的,該例子是Android APIDEMO里的一個例子,這個例子需要Android 2.3以上的系統(tǒng)。因為只有
54、2.3以上的Android系統(tǒng),才支持頻譜顯示的Visualizer類。:(代碼過多,只謄寫一部分)this.llVisualizer = (LinearLayout)this.root.findViewById(2131165200); class VisualizerView extends ViewButton類(按鈕類):Button是Android的一個常用的功能,他的功能相當于一個觸發(fā)器,即當什么時候做什么事,不過這個當什么時候已經(jīng)被固定,即這個按鈕被點擊的時候,本界面的按鈕相當之多,代碼也相當繁多,不一一列舉。Activity類:音頻播放器的Activity起的作用和視頻播放器的Activity類似,只不過一個用了Media Player的音樂播放功能,另一個用了Med
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑行業(yè)建筑廢棄物處理設(shè)施建設(shè)合同范本3篇
- 二零二五年度展覽館陳列方案與執(zhí)行協(xié)議4篇
- 2024版臨床用藥采購協(xié)作合同指導(dǎo)文本一
- 二零二五版4S店試駕活動車輛租賃與調(diào)度合同3篇
- 2025年超聲科醫(yī)師培訓與考核服務(wù)合同范本3篇
- 2025年度草莓采摘節(jié)活動策劃與贊助合同范本3篇
- 二零二五年度汽車抵押貸款服務(wù)合同年度修訂版8篇
- 2025年度政府會議錄像采集與編輯合同3篇
- 二零二五年生態(tài)農(nóng)業(yè)示范區(qū)設(shè)施建設(shè)合同模板3篇
- 二零二五年度智能電網(wǎng)專用變壓器采購合同模板4篇
- 骨科手術(shù)后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實施方案(一)
- 高血壓患者用藥的注意事項講義課件
- 特種作業(yè)安全監(jiān)護人員培訓課件
- (完整)第15章-合成生物學ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評論
0/150
提交評論