版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)設(shè)計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)設(shè)計與實現(xiàn)是在在線視頻點播系統(tǒng)的基礎(chǔ)上添加了歌曲播放列表和自由播放的功能,給大家?guī)矸奖悖藗冎恍璋严肼牭母枨砑拥讲シ帕斜碇?,自動播放。并且隨時可以自由重建按自己的意愿及別人的需要按序播放歌曲序列。隨著計算機
2、技術(shù)和Internet的日新月異,寬帶VOD視頻點播技術(shù)因良好的人機交互性和流媒體傳輸技術(shù)倍受教育、娛樂等行業(yè)青睞。本系統(tǒng)結(jié)合千千靜聽中的播放列表和KTV中可以優(yōu)先播放歌曲等開發(fā)實力,闡述了基于Web的交互式視頻點播系統(tǒng)的協(xié)議原理、軟件結(jié)構(gòu)和設(shè)計實現(xiàn)。</p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)根據(jù)流媒體傳輸原理,實現(xiàn)用戶對歌曲專輯里播放列表的歌曲自由的調(diào)序,歌曲可以上下移動,同時用戶可以根據(jù)自己的意愿或
3、他人的需求重組建自己喜歡的播放列表,把歌曲加入我的收藏。</p><p> 關(guān)鍵詞: 流媒體;SQL Server;ASP.NET AJAX;自由播放 </p><p> Free playlist of songs on-demand system design and implementation</p><p><b> Abstract&l
4、t;/b></p><p> Free playlist of songs on-demand system design and implementation of the online video-on-demand system based on the songs added to playlists and the freedom to play the function of convenie
5、nce for everyone, people simply want to listen to the songs added to playlist automatically play. And at any time be free to rebuild in accordance with their own wishes and needs of other people to play songs in sequence
6、 sequence. With the computer technology and the ever-changing Internet, broadband video-on-</p><p> Free playlist of songs on-demand streaming media transmission system in accordance with the principle of u
7、ser album of songs playlist of songs free transfer sequence, songs can be moved up and down and at the same time users can according to their own wishes or needs of others like it re-formed their own playlist, add songs
8、to the collection.</p><p> Keywords Streaming media; SQL Server ; ASP.NET AJAX; video on demand</p><p><b> 目 錄</b></p><p><b> 摘 要0</b></p>&l
9、t;p> Abstract2</p><p><b> 1.緒論3</b></p><p> 1.1自由播放列表簡介3</p><p> 1.1.1自由播放列表的意義3</p><p> 1.2可行性分析4</p><p> 1.2.1市場可行性分析4<
10、;/p><p> 1.2.2技術(shù)可行性分析4</p><p> 1.2.3經(jīng)濟可行性分析4</p><p> 1.3系統(tǒng)目標(biāo)4</p><p> 2.關(guān)鍵技術(shù)分析6</p><p> 2.1ASP.NET AJAX技術(shù)6</p><p> 2.2ASP.NET AJ
11、AX框架6</p><p> 2.2.1服務(wù)器端主要技術(shù)7</p><p> 2.2.2客戶端主要技術(shù)8</p><p> 2.3ADO.NET技術(shù)9</p><p> 3.系統(tǒng)總體設(shè)計11</p><p> 3.1系統(tǒng)環(huán)境11</p><p> 3.2系統(tǒng)功
12、能設(shè)計11</p><p> 3.3系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計13</p><p> 4.系統(tǒng)詳細(xì)設(shè)計17</p><p> 4.1用戶服務(wù)模塊17</p><p> 4.2點播系統(tǒng)的環(huán)境、功能設(shè)置19</p><p> 4.3自由播放列表的建立21</p><p> 4
13、.3.1管理員列表的建立21</p><p> 4.3.2用戶列表的建立22</p><p> 4.3.3顯示播放清單23</p><p> 4.4自由播放列表播放管理25</p><p> 4.4.1系統(tǒng)自動列表播放31</p><p> 4.4.2人工調(diào)序列表播放32</p&
14、gt;<p> 4.5點播系統(tǒng)歌曲管理33</p><p> 4.6點播系統(tǒng)搜索管理35</p><p> 5.實現(xiàn)自由播放列表歌曲點播系統(tǒng)的應(yīng)用與測試37</p><p> 5.1測試目的37</p><p> 5.2系統(tǒng)功能測試37</p><p> 5.2.1自由播
15、放列表注冊模塊37</p><p> 5.2.2自由播放列表登陸模塊38</p><p> 5.2.3自由播放列表搜索模塊39</p><p> 5.2.4自由播放列表評論模塊39</p><p> 5.2.5自由播放列表添加專輯模塊40</p><p> 5.2.6自由播放列表編輯歌曲模
16、塊41</p><p><b> 致 謝44</b></p><p><b> 參考文獻45</b></p><p><b> 緒論</b></p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)設(shè)計與實現(xiàn)是在在線視頻點播系統(tǒng)的基礎(chǔ)上添加了歌曲播放列表和自由播放的功能
17、,那首先了解下視頻點播,它出現(xiàn)的最初動力是人們對廣播電視的更高需求。現(xiàn)代社會的壓力慢慢加大,我想人們在下班后或者休息片刻能夠適當(dāng)?shù)慕o自己減減壓或看一場電影、或聽聽音樂,享受美好的視覺效果。同時它可以滿足每個用戶的需求,可以讓用戶指定節(jié)目的起始位置,或許不用錯過哪一段精彩片段而給自己帶來不好的心情。也給用戶帶來方便用戶在播放歌曲的時候可以在歌曲列表中選擇想聽的歌曲,不用一直守在電腦前點擊歌曲,歌曲連續(xù)播放?;蛟S在改變意愿的時候,把歌曲放置
18、前,進行優(yōu)先播放。實現(xiàn)自由播放列表的歌曲點播系統(tǒng)有用戶模塊以及管理員模塊,用戶模塊主要包含用戶對專輯歌曲信息的搜索顯示、播放以及用戶可以把自己喜歡的歌曲添加到“我的收藏” 重新組建用戶自己的播放列表。管理員模塊主要包含歌曲信息的添加、刪除、修改以及用戶評論,消息管理和用戶管理。</p><p><b> 自由播放列表簡介</b></p><p><b>
19、 自由播放列表的意義</b></p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)主要是在視頻點播的基礎(chǔ)上添加了播放列表以及用戶可以自由調(diào)整播放列表的歌曲,進行自由播放。同時用戶可以組建自己的播放列表,把自己喜歡的歌曲收藏到“我的收藏”。視頻點播具有交互性,用戶可根據(jù)個人需求選擇視頻節(jié)目,并指定該節(jié)目的起始位置,從這一點來說,視頻點播也可以稱為交互式視頻點播;而傳統(tǒng)電視是按事先安排好的程序播放節(jié)目,用戶
20、在選擇和觀看節(jié)目方面是被動的,只有頻道選擇權(quán),沒有播放控制權(quán),更不能對視頻進行交互式操作。實現(xiàn)自由播放列表的歌曲點播系統(tǒng)設(shè)計與實現(xiàn)又給大家?guī)矸奖悖藗兛梢宰杂牲c播列表里的歌曲,并且隨時可以重建按自己的意愿及他人的需要歌曲的列表。</p><p><b> 可行性分析</b></p><p><b> 市場可行性分析</b></p>
21、;<p> 目前具有實現(xiàn)自由播放列表歌曲點播功能能的軟件很多,如千千靜聽的播放列表、KTV里點歌系統(tǒng),這些都是市場上我們可以看到的實例,實現(xiàn)自由播放列表歌曲點播系統(tǒng)的播放列表主要是實現(xiàn)歌曲可以上下調(diào)序,讓用戶可以自由播放播放列表序列,如KTV里的歌曲點播中把歌曲優(yōu)先播放。</p><p><b> 技術(shù)可行性分析</b></p><p> [1]實
22、現(xiàn)自由播放列表的歌曲點播系統(tǒng)我們主要采用Ajax技術(shù),Ajax 是 Asynchronous Javascript and XML(以及 DHTML 等)的縮寫。HTML 用于建立 Web 表單并確定應(yīng)用程序其他部分使用的字段。Javascript 代碼是運行 Ajax 應(yīng)用程序的核心代碼,幫助改進與服務(wù)器應(yīng)用程序的通信。DHTML 或 Dynamic HTML,用于動態(tài)更新表單。我們將使用 div、span 和其他動態(tài) HTML 元素
23、來標(biāo)記 HTML。文檔對象模型 DOM 用于服務(wù)器返回的 XML。AJAX是各種技術(shù)的結(jié)合。"Google Suggest"和"Google Maps" 是采用Ajax技術(shù)的兩個典型例子,它表現(xiàn)出一個Web開發(fā)上的根本轉(zhuǎn)變.。</p><p><b> 經(jīng)濟可行性分析</b></p><p> 經(jīng)濟可行性主要是看開發(fā)的這一軟
24、件所能帶來的經(jīng)濟效益與開發(fā)設(shè)計所需要的投資相比,是否相適宜,這套系統(tǒng)正是考慮系統(tǒng)開發(fā)的成本而設(shè)計。本系統(tǒng)可以節(jié)省許多費用,同時也可提高個人的實際動手能力。</p><p><b> 系統(tǒng)目標(biāo)</b></p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)重要是以用戶為核心,讓用戶可以自由播放播放列表的歌曲,本系統(tǒng)從各個可行性的角度考慮完成,主要支持的歌曲格式有.wmv、
25、.wma、.asf、.mp3。該系統(tǒng)最大的特色在于自由播放列表這模塊上,采用AJAX技術(shù)以改善Web用戶體驗為目的,緊密結(jié)合ASENET 2.0技術(shù),使Web開發(fā)變得輕松快速,而不需要去跟服務(wù)器端交互來更新頁面。</p><p><b> 關(guān)鍵技術(shù)分析</b></p><p> ASP.NET AJAX技術(shù)</p><p> [2]Aja
26、x(Asynchronous JavaScript+XML,即異步JavaScript+XML)是一個相當(dāng)新的名字,由Adaptive Path的咨詢顧問Jesse James Garrett首先提出來的。Ajax的一些部分,以前稱作動態(tài)HTML(Dynamic HTML)和遠(yuǎn)程腳本(remote scripting)。無論是從技術(shù)還是從商業(yè)角度,Ajax同樣讓人耳目一新。技術(shù)上,Ajax極大地發(fā)掘了Web瀏覽器的潛力,開啟了大量新的可
27、能性。商業(yè)上,Google和其他主要的參與者通過眼花繚亂的Ajax應(yīng)用,讓普通大眾對于新一代的Web應(yīng)用充滿了期待。對豐富的用戶操作事件進行捕獲。類似于拖拽這樣的復(fù)雜的UI概念也不再是遙不可及的。這使得Web應(yīng)用的UI體驗可以全面提升到近乎與桌面應(yīng)用的UI逐漸相媲美的高度。從可用性的角度看,這很重要,不僅僅是因為它釋放了我們的想象力,而且也是因為它可以將用戶交互和服務(wù)器端的請求更加充分地混合起來。</p><p>
28、; ASP.NET AJAX框架</p><p> [3]AJAX產(chǎn)品不外乎三大類型:回調(diào)框架、UI框架和完整框架。</p><p> 第一,回調(diào)框架。這類框架一般由少數(shù)的幾個客戶端及服務(wù)器端庫文件組成。它只允許開發(fā)者從客戶端調(diào)用服務(wù)器端代碼片段,并以序列化方式傳送輸入和輸出參數(shù)。</p><p> 第二,UI框架。典型的UI框架一般都是從現(xiàn)有的專業(yè)控件庫演
29、變而來,它們往往提供給開發(fā)者一些高級網(wǎng)格控件、圖表控件和樹控件,等等。這些控件都會支持異步回發(fā)機制并在客戶端生成用于自動刷新頁面的JavaScript代碼。</p><p> 第三,完整框架。相比于以上兩種框架,完整框架則提供包含控件和應(yīng)用程序服務(wù)在內(nèi)的極為豐富的編程模型,更適宜于同時應(yīng)用于客戶端和服務(wù)器端。微軟的ASP.NET AJAX框架屬于第三種類別。</p><p><b&
30、gt; 服務(wù)器端主要技術(shù)</b></p><p> [3]AJAX的主要設(shè)計目標(biāo)有兩點:(1)擴展現(xiàn)有的ASP.NET服務(wù)器端模型,讓其能夠自動生成支持富客戶端的JavaScript代碼;(2)為ASP.NET增加客戶端編程模型,進一步簡化客戶端編程。</p><p> 由此,整個ASP.NET AJAX框架實質(zhì)上包含了兩種截然不同(但不互相排斥)的API:客戶端API和
31、服務(wù)器端API。你可以通過直接的客戶端編程、傳統(tǒng)服務(wù)器端編程或這兩者的任意組合構(gòu)建AJAX應(yīng)用。本質(zhì)上,任何基于AJAX的頁面都需要一些客戶端JavaScript代碼來處理瀏覽器的文檔對象模型(DOM)和任何特定于應(yīng)用程序的擴展。但是,不必將這類腳本代碼編寫工作留給ASP.NET程序員。事實上,框架可生成專門設(shè)計的腳本代碼作為服務(wù)器端控件的輸出。這種形式的間接頁面更新是目前為止將AJAX功能添加到新的和現(xiàn)有的ASP.NET 2.0頁面的
32、最簡單方法。在ASP.NET AJAX中,頁面更新可由服務(wù)器控件(UpdatePanel控件)所自動插入的一段客戶端代碼來管理。</p><p> 下圖2-1展示了ASP.NET AJAX框架的服務(wù)器端架構(gòu)。</p><p> 圖2-1 ASP.NET AJAX框架的服務(wù)器端架構(gòu)</p><p> ASP.NET AJAX框架中提供了自己的類似于ASP.NET
33、服務(wù)器控件的MS AJAX服務(wù)器控件;但是,MS AJAX服務(wù)器控件卻具有能夠生成客戶端JavaScript腳本的能力。因此,MS AJAX服務(wù)器控件進一步簡化了產(chǎn)生MS AJAX客戶端JavaScript腳本的過程,非常適合于專注于服務(wù)器開發(fā)的開發(fā)人員。MS AJAX包含了完整的服務(wù)器控件,如Button、Label、Option、TextBox、CheckBox、HyperLink和Validator等,這些控件與現(xiàn)有的ASP.NE
34、T服務(wù)器控件非常類似。所有這些控件都會被無縫地集成進Visual Studio開發(fā)環(huán)境,所以,你可以如同使用ASP.NET服務(wù)器控件一般使用它們。</p><p><b> 客戶端主要技術(shù)</b></p><p> [3]ASP.NET AJAX以客戶端為中心的編程模型的重心是支持遠(yuǎn)程端點(通常為ASP.NET Web服務(wù)和Windows通訊基礎(chǔ)服務(wù),但也可能是其
35、它內(nèi)容)調(diào)用的能力。直接從客戶端瀏覽器啟動時,對遠(yuǎn)程端點的調(diào)用需要JavaScript代理和JavaScript代碼片段。注意,我們可以把“客戶端數(shù)據(jù)綁定”視為傳統(tǒng)JavaScript運行時和DOM的擴展。在純粹的客戶端編程風(fēng)格中,首先會連接到遠(yuǎn)程端點,然后下載數(shù)據(jù),并將數(shù)據(jù)綁定到DOM子樹。此時,模板結(jié)構(gòu)和一些狀態(tài)信息保存在客戶端上,只有原始數(shù)據(jù)從服務(wù)器移動到客戶端上。</p><p> 下圖2-2展示了AS
36、P.NET AJAX框架的客戶端架構(gòu)。</p><p> 圖2-2 ASP.NET AJAX框架的客戶端架構(gòu)</p><p><b> ADO.NET技術(shù)</b></p><p> [4]ADO.NET的設(shè)計思想是從數(shù)據(jù)庫中讀取數(shù)據(jù)到內(nèi)存中,構(gòu)成一個內(nèi)存中數(shù)據(jù)庫。從這個設(shè)計思想可以看出,要達到從數(shù)據(jù)庫中讀取數(shù)據(jù)構(gòu)成一個內(nèi)存中的數(shù)據(jù)庫的目
37、的包括兩個過程:</p><p> 數(shù)據(jù)讀取的過程,通過這個過程可以從不同的數(shù)據(jù)庫中讀取數(shù)據(jù)。</p><p> 構(gòu)造內(nèi)存數(shù)據(jù)庫的過程,數(shù)據(jù)通過數(shù)據(jù)讀取過程從數(shù)據(jù)庫中讀取出來后,需要為其提動數(shù)據(jù)結(jié)構(gòu)并且分配內(nèi)存空間以供應(yīng)用程序使用這些數(shù)據(jù)。為讀取出來的數(shù)據(jù)提供數(shù)據(jù)結(jié)構(gòu)并且分配內(nèi)存空間的過程其實就是構(gòu)造內(nèi)存數(shù)據(jù)庫的過程。在這個過程中,構(gòu)造適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)非常重要。</p>&
38、lt;p> 了解ADO.net的設(shè)計思想后,我們再看看ADO.net的體系結(jié)構(gòu),如圖2-3。</p><p> 圖2-3 ADO.net的體系結(jié)構(gòu)</p><p> 設(shè)計ADO.net的目的是為了從數(shù)據(jù)操作中分解出數(shù)據(jù)訪問。完成此任務(wù)的是ADO.NET的兩個核心組件:.NET數(shù)據(jù)提供程序和DataSet。.net數(shù)據(jù)提供程序是一組包括Connection、Command、Da
39、taReader和DataAdapter類的組件。Dataset其實可以理解為內(nèi)存中的數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)。DataSet類其實是一個數(shù)據(jù)表Datatable對象的集合,Datatable類表示的是內(nèi)存中的數(shù)據(jù)表。而Datatable又是數(shù)據(jù)行Datarow和數(shù)據(jù)列Datacolumn的集合。</p><p><b> 系統(tǒng)總體設(shè)計</b></p><p><b&
40、gt; 系統(tǒng)環(huán)境</b></p><p> Microsoft ASP.NET AJAX 需要下面的軟件支持</p><p><b> 操作系統(tǒng)支持:</b></p><p> Windows Server 2003</p><p> Windows XP Home Edition</p>
41、;<p> Windows XP Professional</p><p> Windows Vista</p><p> 任何支持.NET Framework version 2.0 的windows操作系統(tǒng)(包括windows2000),注意支持程度受各操作系統(tǒng)的限制</p><p><b> 軟件要求:</b><
42、;/p><p> The .NET Framework 2.0 或者 3.0.</p><p><b> IE 5或更高</b></p><p><b> 開發(fā)工具:</b></p><p> Microsoft Visual Studio 2005、SQL Server 2
43、005</p><p><b> 系統(tǒng)功能設(shè)計</b></p><p> 實現(xiàn)自由播放列表的歌曲點播系統(tǒng)需要實現(xiàn)的功能包括基本的用戶的管理,以及視頻信息的管理和使用。具體來講,該系統(tǒng)主要體現(xiàn)在自由播放列表上,人們可以自由點播自己想聽的專輯歌曲,該系統(tǒng)是在對一些用戶常用的的實際方式調(diào)研后,以實際為基礎(chǔ)進行設(shè)計的比如說千千靜聽中常見的播放列表,同時實現(xiàn)自由播放列表的歌
44、曲點播系統(tǒng)具有創(chuàng)新的部分,就是它可以根據(jù)用戶的意愿改變歌曲播放次序,優(yōu)先播放,比如我們常見的在KTV里點播歌曲后,可以把優(yōu)先唱的歌曲放置前面。實現(xiàn)自由播放列表的歌曲點播系統(tǒng)包括兩大模塊:用戶模塊和管理員模塊。</p><p> 本系統(tǒng)根據(jù)使用該網(wǎng)站的用戶角色不同可分為三種用戶:</p><p> 管理員:主要是登陸到后臺負(fù)責(zé)歌曲專輯的添加,在專輯歌曲里點擊增加歌曲,以及負(fù)責(zé)歌曲的刪除,
45、修改,同時可以對用戶、評論和消息進行管理。</p><p> 普通用戶:采用先注冊后登錄的方式進入網(wǎng)站,進行瀏覽相關(guān)歌曲,點播歌曲,以為在播放列表對歌曲進行上下調(diào)序,同時用戶還可以收藏自己愛聽的歌曲,組建用戶自己的播放列表。</p><p> 普通游客:只能對本站的歌曲信息進行瀏覽,不可以點播、評論等操作。根據(jù)用戶的角色和需求進行劃分后,可以歸納出用戶播放播放列表的數(shù)據(jù)流圖如圖3-1所
46、示:</p><p> 圖3-1 用戶播放播放列表</p><p> 本系統(tǒng)的總體功能模塊如圖3-2所示。</p><p> 圖3-2 系統(tǒng)的整體功能模塊</p><p><b> 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p> [5]數(shù)據(jù)庫結(jié)構(gòu)設(shè)計是在完成了描述系統(tǒng)各種數(shù)據(jù)之間的依
47、賴關(guān)系和信息分類的基礎(chǔ)上,將各種信息轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)項定義表。數(shù)據(jù)項定義表的作用主要是定義每個表的表名、表中各字段的名稱、數(shù)據(jù)類型長度和允許空,但在不同的數(shù)據(jù)庫,數(shù)據(jù)類型的表示符號和長度有所差別。按功能劃分,主要包括用戶表,消息表,評論表,歌曲專輯信息表和歌曲信息表。用戶表主要包括注冊后的用戶名,密碼,郵件地址。消息表包括管理員對消息的修改。評論表主要包含評論者對專輯評論發(fā)表的時間和內(nèi)容。歌曲專輯信息表主要包括歌曲專輯上傳時間,歌曲專輯
48、的詳細(xì)介紹和所屬的類型。歌曲信息表主要包含歌曲上傳時間,歌曲序列,歌曲相關(guān)信息。本系統(tǒng)的數(shù)據(jù)庫表詳見如下:</p><p> 1、在數(shù)據(jù)庫中建立用戶表,用戶表包括了用戶的用戶名、密碼、郵件地址、是否為管理員、密碼保護提示問題、回答等信息,詳見表3-1用戶表。</p><p><b> 表3-1 用戶表</b></p><p> 2、在數(shù)據(jù)
49、庫里建立一個最新消息表,其中字段包括編號、站內(nèi)公告消息1、站內(nèi)公告消息2。詳見表3-2最新消息表。</p><p> 表3-2 最新消息表</p><p> 3、在數(shù)據(jù)庫里建立一個評論表,其中包括編號、歌曲名、評論者、評論時間、評論內(nèi)容、評論者IP。評論表詳見表3-3評論表。</p><p><b> 表3-3 評論表</b></p
50、><p> 4、在數(shù)據(jù)庫里建立一個歌曲專輯信息表,其中字段包括編號、歌曲名、文件名、點擊次數(shù)、分類、歌曲大小、圖片名稱、上傳時間、內(nèi)容簡介、演唱歌手、評論次數(shù)等基本信息,詳見表3-4歌曲專輯信息表。</p><p> 表3-4 歌曲專輯信息表</p><p> 5、在數(shù)據(jù)庫里建立一個歌曲信息表,其中字段包含歌曲信息名,歌曲文件名,歌曲相關(guān)信息,上傳時間等基本信息,
51、詳見表3-5歌曲信息表。</p><p><b> 表3-5歌曲信息表</b></p><p> 本系統(tǒng)的整體數(shù)據(jù)庫的E-R圖的詳細(xì)描述見圖3-3所示。</p><p> 圖3-3 實現(xiàn)自由播放列表歌曲點播系統(tǒng)數(shù)據(jù)庫E-R圖</p><p><b> 系統(tǒng)詳細(xì)設(shè)計</b></p>
52、<p> [6]系統(tǒng)說明對于系統(tǒng)的初級應(yīng)用者來說是一個非常重要的部分,它詳細(xì)的介紹了本系統(tǒng)的基本應(yīng)用,本文主要簡單的介紹些用戶服務(wù)模塊和詳細(xì)看看自由播放列表的相關(guān)內(nèi)容。</p><p><b> 用戶服務(wù)模塊 </b></p><p> 用戶服務(wù)模塊主要是包含用戶注冊和用戶登錄,用戶注冊主要是輸入用戶名、密碼、確認(rèn)密碼和用戶的郵箱地址。用戶登錄主要
53、是用戶注冊后以正確的用戶名和密碼進行用戶登錄。在注冊模塊塊中可以看到的相關(guān)代碼如下:</p><p> RequiredFieldValidator:對與必填的數(shù)據(jù)段進行驗證,不允許數(shù)據(jù)為空。</p><p> CompareValidator:對密碼進行檢驗,兩次密碼輸入是否正確。</p><p> RegularExpressionValidator:正則
54、表達式驗證,主要對常用的數(shù)據(jù)類型進行驗證。數(shù)據(jù)流圖如下4-1:</p><p> 圖4-1 用戶注冊</p><p> 注冊成功之后再回到主界面時就可通過登陸模塊進行登陸,如果密碼及用戶名正確輸入后則進入本系統(tǒng)并登陸界面消失,在原位置上出現(xiàn)站內(nèi)公告模塊。登陸模塊,轉(zhuǎn)到login.aspx,主要是了解登陸里的一些類表示:</p><p> sqlconnect
55、ion 連接數(shù)據(jù)庫對象主要通過SqlConnection類實現(xiàn),并初始化數(shù)據(jù)庫連接字符串。</p><p> sqldataReader類與數(shù)據(jù)源相連接,提供只讀的,向前的快速讀取。</p><p> sqlcommand 表示要對SQL Server數(shù)據(jù)庫執(zhí)行的一個Transact-SQL語句或存儲過程。</p><p> 數(shù)據(jù)流圖如下4-2:</p&
56、gt;<p> 圖4-2 用戶登陸</p><p> 點播系統(tǒng)的環(huán)境、功能設(shè)置</p><p> 當(dāng)用戶找到要觀看的歌曲播放按鈕就會轉(zhuǎn)入play.aspx,我們在這里可以詳細(xì)介紹怎么生成自由播放列表點播系統(tǒng)的播放管理。我們首先看自由播放列表的環(huán)境設(shè)置,它主要是介紹播放面板上顯示的時間長度和曲目之間的延遲時間以及建立已選取播放項目數(shù)組,主要是自由播放列表點播系統(tǒng)的環(huán)境設(shè)
57、置如圖4-3:</p><p> 圖4-3 自由播放列表點播系統(tǒng)的環(huán)境設(shè)置</p><p> 我們可以看看人們在操作自由播放列表點播系統(tǒng)的播放管理過程的一些功能設(shè)置如圖4-4:</p><p> 圖4-4 自由播放列表點播系統(tǒng)的功能設(shè)置</p><p> 在這里我們可以簡單介紹自由播放的靜音模式。該圖片通過這個wmpMute函數(shù)實
58、現(xiàn)在exbound.js中的onclick方法如下:</p><p> // wmpMute() 函式: 靜音模式(Mute)</p><p> function wmpMute() {</p><p> var wmps = Exobud.playState;</p><p> if (wmps == 3) { clearInter
59、val(tidTLab); }</p><p> var ps = Exobud.settings;</p><p> if (!ps.mute) { ps.mute = true; disp2.innerHTML = "<font color=#FFFFFF><b>靜音模式啟動</b></font>"; imgCha
60、nge("vmute",1); }</p><p> else { ps.mute = false; disp2.innerHTML = "<font color=#FFFFFF><b>靜音模式關(guān)閉</b></font>"; imgChange("vmute", 0); }</p><
61、p> tidMsg = setTimeout('rtnTLab()', 1000);}</p><p> 自由播放列表的靜音模塊的流程圖4-5:</p><p> 圖4-5自由播放列表的靜音模塊</p><p><b> 自由播放列表的建立</b></p><p><b> 管理
62、員列表的建立</b></p><p> 管理員播放列表主要是指管理員在登陸后臺,在添加專輯和專輯編輯歌曲里添加相對應(yīng)的歌曲, 管理員可以上下調(diào)序添加歌曲的次序。也可以對歌曲進行相應(yīng)的更改。主要代碼:</p><p> SqlConnection con = SqlHelp.GetConn();</p><p> SqlDataAdapter sda
63、 = new SqlDataAdapter();</p><p> DataSet ds = new DataSet();</p><p> con.Open();</p><p> sda.SelectCommand = new SqlCommand(string.Format("select * from song where messid=
64、39;{0}' order by sequenceNum", MessId), con);</p><p> sda.Fill(ds);</p><p> this.gvSongList.DataSource = ds;</p><p> this.gvSongList.DataBind();</p><p> co
65、n.Close(); }</p><p><b> 流程圖如下4-6:</b></p><p> 圖4-6 管理員播放列表</p><p><b> 用戶列表的建立</b></p><p> 用戶播放列表主要是指用戶登陸后可以在站內(nèi)公告上看到“我的收藏”,用戶可以瀏覽管理員的歌曲列表,把自
66、己喜歡的歌曲收藏,組建用戶自己的播放列表,然后對已添加到用戶列表的歌曲進行選擇播放。</p><p> 主要代碼: private void BindSongList()</p><p> { int loginUserId = Convert.ToInt32(Session["TheLoginUserId"].ToString());//登陸用戶ID</p&
67、gt;<p> SqlConnection conn = SqlHelp.GetConn();//數(shù)據(jù)庫連接</p><p> conn.Open();</p><p> string cmmStr = "select * from mysonglistview where userid='{0}'";</p><
68、p> SqlCommand cmm = new SqlCommand(string.Format(cmmStr, loginUserId), conn);//表示要對SQL Server數(shù)據(jù)庫執(zhí)行</p><p> SqlDataAdapter da = new SqlDataAdapter(cmm);//用于填充Dataset和更新Sql Server數(shù)據(jù)庫的一個數(shù)據(jù)庫命令和一個數(shù)據(jù)庫連接</p
69、><p> DataSet ds = new DataSet();</p><p> da.Fill(ds, "song");</p><p> conn.Close();</p><p> gvMySongList.DataSource = ds;</p><p> gvMySongList
70、.DataBind(); }</p><p><b> 流程圖如下4-7:</b></p><p> 圖4-7 用戶播放列表</p><p><b> 顯示播放清單</b></p><p> 顯示播放清單是整個播放歌曲的一個重要環(huán)節(jié),主要是以彈出窗口顯示播放清單內(nèi)容。如果在播放清單上沒有任
71、何歌曲,點播歌曲后會顯示“無法播放-播放清單上沒有設(shè)定任何曲目”,那如果在播放清單上有歌曲清單但沒有選取任何一首歌曲該系統(tǒng)會顯示“無法播放 - 您沒有選取播放清單上任何一首曲目",代碼如下:</p><p> // waitMsg() 函式: 顯示因播放清單空白而無法播放的訊息</p><p> function waitMsg() {</p><p>
72、; if (intExobudStat == 1) { disp1.innerHTML = "無法播放 - 播放清單上沒有設(shè)定任何曲目。" if (intExobudStat == 2) { disp1.innerHTML = "無法播放 - 您沒有選取播放清單上任何一首曲目。" } </p><p> 顯示播放清單流程圖4-8:</p><p>
73、; 圖4-8 顯示播放清單</p><p> 自由播放列表播放管理</p><p> 我們在上面詳細(xì)介紹了自由播放列表的一些環(huán)境設(shè)置和功能設(shè)置,那我們繼續(xù)往下看自由播放列表中功能模塊中的播放管理功能的一些按鈕,如圖4-9。</p><p> 圖4-9 自由播放列表播放管理</p><p> 我們具體看看自由播放列表的各個按鈕功能,首
74、先我們看看為開始播放曲目通過圖片這個startExobud函數(shù)實現(xiàn)在exbound.js中的onclick方法如下:</p><p> // startExobud() 函式: 開始播放曲目</p><p> function startExobud() {</p><p> var wmps = Exobud.playState;</p>&l
75、t;p> if (wmps == 2) { Exobud.controls.play();</p><p> try { clearInterval(play_time) } catch (e) { } return; }</p><p> if (wmps == 3) { return; }</p><p> blnfpl = false;<
76、/p><p> if (!blnEnabled) { waitMsg(); return; }</p><p> if (blnEOT) { mkSelAct(); }</p><p> if (intErrCnt > 0) { intErrCnt = 0; tidErr = setTimeout('retryPlay(),1000'); r
77、eturn; }</p><p> if (blnRndPlay) { rndPlay(); }</p><p> else { cActIdx = arrActMm[0]; selMmPlay(cActIdx); }}</p><p> 自由播放列表點播系統(tǒng)的開始播放曲目的流程圖如下4-10</p><p> 圖4-10自由播放列表
78、點播系統(tǒng)的開始播放曲目</p><p> 接下來看看自由播放列表上S是切換當(dāng)前歌曲和R是不切換當(dāng)前歌曲,循環(huán)播放.按鈕 和通過圖片這個chkrept函數(shù)實現(xiàn)在exbound.js中的onclick方法如下:</p><p> // chkRept() 函式: 切換是否重復(fù)播放目前的曲目(已啟用播放項目)</p><p> function chkRept()
79、{</p><p> var wmps = Exobud.playState;</p><p> if (wmps == 3) { clearInterval(tidTLab); }</p><p> if (blnRept) { blnRept = false; imgChange('rept', 0); disp2.innerHTML =
80、"<font color=#FFFFFF><b>不重復(fù)播放</b></font>";</p><p> } else {blnRept = true; imgChange('rept', 1); disp2.innerHTML = "<font color=#FFFFFF><b>重復(fù)播放<
81、/b></font>"; }</p><p> tidMsg = setTimeout('rtnTLab()', 1000);}</p><p> 自由播放列表的切換是否重復(fù)播放目前的曲目的流程圖如下4-11</p><p> 圖4-11 自由播放列表的切換是否重復(fù)播放目前的曲目</p><p&g
82、t; 接著看自由播放列表的中按鈕是指歌曲可以隨機播放和按鈕是指歌曲循序播放.通過圖片這個chgPMode函數(shù)實現(xiàn)在exbound.js中的onclick方法如下:</p><p> // chgPMode() 函式: 切換以循序(Sequential)抑或隨機(Random)的方式來播放媒體項目function chgPMode() {</p><p> var wmps = Exo
83、bud.playState;</p><p> if (wmps == 3) { clearInterval(tidTLab); }</p><p> if (blnRndPlay) {</p><p> blnRndPlay = false; imgChange('pmode', 0); disp2.innerHTML = "<
84、;font color=#FFFFFF><b>循序播放</b></font>";</p><p> } else {blnRndPlay = true; imgChange('pmode', 1); disp2.innerHTML = "<font color=#FFFFFF><b>隨機播放</b>
85、</font>"; }</p><p> tidMsg = setTimeout('rtnTLab()', 1000)}</p><p> 自由播放列表的切換以循序或隨機方式來播放的流程圖如下4-12:</p><p> 圖4-12 自由播放列表的切換以循序或隨機方式來播放</p><p> 我們
86、再往下看是播放上一首通過圖片這個playPrev函數(shù)實現(xiàn)在exbound.js中的onclick方法如下:</p><p> // playPrev() 函式: 播放上一首已啟用播放項目</p><p> function playPrev() {</p><p> var wmps = Exobud.playState;</p><p&g
87、t; if (wmps == 2 || wmps == 3) { Exobud.controls.stop(); }</p><p> blnfpl = false;</p><p> if (!blnEnabled) { waitMsg(); return; }</p><p> if (blnEOT) { mkSelAct(); }</p>
88、<p> intErrCnt = 0;</p><p> if (blnRndPlay) { rndPlay(); }</p><p> else { var idx = cActIdx;</p><p> var blnFind = false;</p><p> for (var i = 0; i < intS
89、elMmCnt; i++) { if (cActIdx == arrSelMm[i]) { idx = i - 1; blnFind = true; } }</p><p> if (!blnFind) { startExobud(); return; }</p><p> if (idx < 0) { idx = intSelMmCnt - 1; cActIdx = arrSe
90、lMm[idx]; }</p><p> else { cActIdx = arrSelMm[idx]; }</p><p> selMmPlay(cActIdx);}}</p><p> 自由播放列表的播放上一首的模塊流程圖4-13:</p><p> 圖4-13 自由播放列表的播放上一首曲目</p><p>
91、; 繼續(xù)往下看是停止播放曲目通過圖片 wmpStop() 函式: 停止播放曲目及顯示「就緒」?fàn)顟B(tài)訊息方法調(diào)用。</p><p> function wmpStop() {</p><p> intErrCnt = 0;</p><p> clearTimeout(tidErr);</p><p> clearInterval(tid
92、TLab);</p><p> imgChange("stopt", 1);</p><p> imgChange("pauzt", 0);</p><p> imgChange("scope", 0);</p><p> showTLab();</p><
93、;p> mkSelAct();</p><p> Exobud.controls.stop();</p><p> Exobud.close();</p><p> CourseButton.style.pixelLeft = 0</p><p> disp1.innerHTML = "<font class=
94、title>ExoBUD MP 網(wǎng)站媒體播放程序(雨網(wǎng)國際官方簡體中文版)[就緒]</font>";</p><p> if (blnStatusBar) { window.status = ('ExoBUD MP 網(wǎng)站媒體播放程序(雨網(wǎng)國際官方簡體中文版)[就緒]'); return true; }}</p><p> 自由播放列表的停止播
95、放曲目的模塊流程圖4-14:</p><p> 圖4-14 自由播放列表的停止播放曲目</p><p> 繼續(xù)往下看是播放下一首通過圖片這個playNext()函數(shù)實現(xiàn)在exbound.js中的onclick方法如下:</p><p> // playNext() 函式: 播放下一首已啟用播放項目</p><p> function
96、playNext() { var wmps = Exobud.playState;</p><p> if (wmps == 2 || wmps == 3) { Exobud.controls.stop(); }</p><p> blnfpl = false;</p><p> if (!blnEnabled) { waitMsg(); return; }&
97、lt;/p><p> if (blnEOT) { mkSelAct(); }</p><p> intErrCnt = 0;</p><p> if (blnRndPlay) { rndPlay(); }</p><p> else { var idx = cActIdx;</p><p> var blnFin
98、d = false;</p><p> for (var i = 0; i < intSelMmCnt; i++) { if (cActIdx == arrSelMm[i]) { idx = i + 1; blnFind = true; } }</p><p> if (!blnFind) { startExobud(); return; }</p><p&g
99、t; if (idx >= intSelMmCnt) { idx = 0; cActIdx = arrSelMm[idx]; }</p><p> else { cActIdx = arrSelMm[idx]; }</p><p> selMmPlay(cActIdx); }}</p><p> 自由播放列表的播放下一首模塊的流程圖4-15:</
100、p><p> 圖4-15 自由播放列表的播放下一首</p><p><b> 系統(tǒng)自動列表播放</b></p><p> 我們點播播放,可以看到彈出的播放列表,如果我們點播的歌曲專輯里有歌曲,我們可以全選或不全選歌曲,系統(tǒng)自動連續(xù)播放,代碼如下:</p><p> // playAuto() 函式: 對已啟用播放項
101、目進行「自動連續(xù)播放」的處理</p><p> // 這是根據(jù)上面 blnAutoProc 的設(shè)定值而決定的動作。true = 自動連續(xù)播放</p><p> false = 不要自動連續(xù)播放,讓使用者自行挑選下一首曲目</p><p> 系統(tǒng)自動播放流程圖4-16:</p><p> 圖4-16系統(tǒng)自動列表播放</p>
102、<p><b> 人工調(diào)序列表播放</b></p><p> 當(dāng)歌曲自動連續(xù)播放,用戶可以根據(jù)自己的意愿或他人的需求改變歌曲的播放次序。我們先看看如果是上移歌曲,被上移的是第一首歌曲,把它移到最后面去,其他的挨個往上排一位。如果不是第一首歌曲把它跟它的前一首歌曲交換一下位置就好了。如果是下移歌曲的話,被下移的是最后首歌曲,把它移到最前面去,其他的往下排一位,代碼如下:<
103、/p><p> elm += "</a> ";</p><p> elm +="<span style='cursor:hand;' onclick='UpSongIndex(" + i + ")'>↑</span>
104、 <span style='cursor:hand' onclick='DownSongIndex(" + i + ")'>↓</span><br>";</p><p> dspList();//移動完,就將排序好的歌曲,按新的順序顯示在播放列表上</p><p> Se
105、tPlayIndex();</p><p> 程序流程圖4-17:</p><p> 圖4-17 人工調(diào)序列表播放</p><p><b> 點播系統(tǒng)歌曲管理</b></p><p> 我們可以看看整個歌曲管理的功能模塊如圖4-18:</p><p> 圖4-18 歌曲管理</p&
106、gt;<p> 主要包括各專輯的添加和編輯歌曲,專輯歌曲添加的基本信息包括專輯名稱、專輯的具體分類,上傳圖片、歌手、專輯簡介等信息。如果信息均符合驗證要求則當(dāng)點擊“上傳”按鈕時歌曲的信息就會添加到數(shù)據(jù)庫當(dāng)中,轉(zhuǎn)到addVideo.aspx</p><p> 流程圖如下4-19:</p><p> 圖4-19 添加專輯歌曲</p><p> 在編
107、輯歌曲當(dāng)中直接轉(zhuǎn)addsong.aspx。主要是對歌曲的添加。主要代碼如下:</p><p> 主要是歌曲上傳的格式為wmv、wma、asf、mp3四種格式。流程圖如下4-20:</p><p> 圖4-20 添加歌曲</p><p><b> 點播系統(tǒng)搜索管理</b></p><p> 我們看看整個自由播放列表
108、的搜索管理功能,搜索功能主要是便于用戶更快的搜索到自己想聽的歌曲專輯,如圖4-21:</p><p> 圖4-21 搜索管理</p><p> 那我們具體看看搜索歌曲專輯名的流程圖4-22:</p><p> 圖4-22 搜索歌曲</p><p> 實現(xiàn)自由播放列表歌曲點播系統(tǒng)的應(yīng)用與測試</p><p>
109、系統(tǒng)的應(yīng)用是做系統(tǒng)的目標(biāo)和意義,本章我們將討論本系統(tǒng)的實際應(yīng)用進行分析,并進行必要的測試。</p><p><b> 測試目的</b></p><p> [7]從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可以接受該產(chǎn)品。而從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人
110、們對軟件質(zhì)量的信心。因此,他們會選擇那些導(dǎo)致程序失效概率小的測試用例,回避那些易于暴露程序錯誤的測試用例。測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。</p><p> 測試的目標(biāo)是想以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。如果成功地實施了測試,就能夠發(fā)現(xiàn)軟件中的錯誤。測試的附帶收獲是,它能夠證明軟件的功能和性能與需
111、求說明相符。此外,實施測試收集到的測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。</p><p><b> 系統(tǒng)功能測試</b></p><p> 自由播放列表注冊模塊</p><p> [8]在這模塊中,主要是看用戶名是否重覆,e-mail格式是否正確。如表5-1:</p><p> 表5-1 用戶注冊模塊測試</
112、p><p> 用戶注冊界面如圖5-1:</p><p> 圖5-1 用戶注冊</p><p> 自由播放列表登陸模塊</p><p> 主要是看用戶和密碼是否正確,能否成功登陸。如表5-2:</p><p> 表 5-2 用戶登陸模塊測試</p><p> 用戶登陸界面如圖5-2
113、:</p><p> 圖5-2 用戶登陸</p><p> 自由播放列表搜索模塊</p><p> 主要是對歌手名和歌曲名搜索,如表5-3:</p><p> 表5-3 用戶搜索模塊測試</p><p> 用戶搜索界面如圖5-3:</p><p> 圖5-3 用戶搜索</
114、p><p> 自由播放列表評論模塊</p><p> 主要是對用戶是否登錄才能做出評論,如表5-4。</p><p> 表5-4 評論管理模塊測試</p><p> 評論管理界面如圖5-4:</p><p><b> 圖5-4 用戶評論</b></p><p>
115、自由播放列表添加專輯模塊</p><p> 對相關(guān)歌曲的詳細(xì)信息的添加,如表5-5。</p><p> 表 5-5 添加歌曲模塊測試</p><p> 添加歌曲界面如圖5-5:</p><p> 圖5-5 添加專輯歌曲</p><p> 自由播放列表編輯歌曲模塊</p><p>
116、 如表5-6 編輯歌曲模塊測試</p><p> 編輯歌曲界面如圖5-6:</p><p> 圖5-6 添加歌曲</p><p><b> 總結(jié)和展望</b></p><p> 本系統(tǒng)基本達到預(yù)期的各項技術(shù)指標(biāo),實現(xiàn)了預(yù)期的各種功能。從整體上來講,本系統(tǒng)還比較令人滿意。該系統(tǒng)主要是實現(xiàn)自由播放列表的功能,以
117、用戶為核心,用戶可以根據(jù)自己的意愿播放自己想聽的歌曲。在本系統(tǒng)中我主要采用了AJAX技術(shù)。該技術(shù)的最大機遇在于用戶體驗?,F(xiàn)在用戶已經(jīng)逐漸習(xí)慣如何使用Web應(yīng)用了。例如用戶通常每一次按鈕點擊會導(dǎo)致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長時間的狀況,因此用戶需要重新體驗按鈕點擊的響應(yīng)了。當(dāng)然也有一些不足之處和需要改進的地方,就是用戶可以添加更多的歌曲格式比如AVI格式,不僅能顯示播放音頻信息,同時歌曲視頻信息能夠顯示出來。還有一點,如
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語音播放列表.txt
- 語音播放列表.txt
- 畢業(yè)論文——視頻點播系統(tǒng)的設(shè)計與實現(xiàn)
- 使用xml形式的播放列表
- 視頻點播系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 軟件工程畢業(yè)論文-視頻點播系統(tǒng)的設(shè)計與實現(xiàn)
- 基于as3.0的音樂點播系統(tǒng)的設(shè)計與實現(xiàn)_畢業(yè)論文
- 音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文
- 互動點播系統(tǒng)設(shè)計與實現(xiàn)——ui界面的設(shè)計與開發(fā)【畢業(yè)論文設(shè)計】
- 互動點播系統(tǒng)──界面和數(shù)據(jù)庫的設(shè)計與實現(xiàn)【畢業(yè)論文設(shè)計】
- 畢業(yè)論文-寬帶點播設(shè)計與實現(xiàn)(含外文翻譯)
- 軟件工程畢業(yè)論文-視頻點播系統(tǒng)的設(shè)計與實現(xiàn) 2
- 基于安卓的音樂播放器系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 多媒體播放器的設(shè)計與實現(xiàn)畢業(yè)論文
- 基于android平臺的音樂播放器設(shè)計與實現(xiàn)畢業(yè)論文
- 在線畢業(yè)論文提交系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 基于android的視頻播放器的設(shè)計與實現(xiàn)--畢業(yè)論文
- 畢業(yè)論文--android在線音樂播放器設(shè)計與實現(xiàn)
- 基于android平臺的音樂播放器設(shè)計與實現(xiàn)畢業(yè)論文
- 選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
評論
0/150
提交評論