下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
p2p在線高清視頻點播系統(tǒng)的設(shè)計與實現(xiàn)
隨著科學(xué)技術(shù)的日新月異,手機(jī)已經(jīng)發(fā)生了無數(shù)的變化。由于手機(jī)視頻技術(shù)在手機(jī)平臺上的應(yīng)用速度較慢,手機(jī)處理能力受到限制,手機(jī)視頻視頻的視頻質(zhì)量仍然無法像pc平臺那樣實現(xiàn)高分辨率。目前手機(jī)視頻播放主要還是基于J2ME技術(shù)、Symbian平臺、Android平臺等來實現(xiàn)。最近幾年,P2P(Peer-to-Peer)又成為因特網(wǎng)上的一個熱點,P2P是因特網(wǎng)的一種應(yīng)用模式,其意思是指網(wǎng)絡(luò)上的任何設(shè)備(包括大型機(jī)、PC機(jī)、PDA、手機(jī)、機(jī)頂盒等等)都可以平等地直接進(jìn)行連接并進(jìn)行協(xié)作,相比當(dāng)前因特網(wǎng)上的主流應(yīng)用模式C/S或者B/S而言,P2P具有自己鮮明的特點和優(yōu)勢。P2P流媒體播放技術(shù)在PC端已經(jīng)得到了廣泛的應(yīng)用,而在手機(jī)客戶端,由于受制于2.5G網(wǎng)絡(luò)帶寬的限制,這仍然是一片空白。在3G網(wǎng)絡(luò)日趨成熟,無線帶寬逐步提高的今天,基于P2P技術(shù)的應(yīng)用程序部署在手機(jī)客戶端已經(jīng)不再是天方夜譚。借助Android操作系統(tǒng)以及3G網(wǎng)絡(luò)的支持,開發(fā)一個P2P在線高清視頻點播系統(tǒng)具有廣闊的應(yīng)用前景。1android環(huán)境Android一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android是一個分層的環(huán)境,構(gòu)建在Linux內(nèi)核的基礎(chǔ)上,它包括豐富的功能。Android包括一個構(gòu)建在WebKit基礎(chǔ)上的可嵌入瀏覽器,Android提供多種連接選項,包括WiFi、藍(lán)牙和通過蜂窩連接的無線數(shù)據(jù)傳輸(如GPRS、EDGE和3G)。Android運行在Linux內(nèi)核上。Android應(yīng)用程序是用Java編程語言編寫的,它們在一個虛擬機(jī)(VM)中運行。每個Android應(yīng)用程序都在DalvikVM的一個實例中運行,這個實例駐留在一個由Linux內(nèi)核管理的進(jìn)程中,如圖1所示。2p2p技術(shù)特點近幾年,P2P(Peer-to-Peer)成為因特網(wǎng)上的一個熱點。P2P是因特網(wǎng)的一種應(yīng)用模式,其意思是指網(wǎng)絡(luò)上的任何設(shè)備(包括大型機(jī)、PC機(jī)、PDA、手機(jī)、機(jī)頂盒等等)都可以平等地直接進(jìn)行連接并進(jìn)行協(xié)作。P2P節(jié)點不依賴中心節(jié)點而是依靠網(wǎng)絡(luò)邊緣節(jié)點,實現(xiàn)自組織與對等協(xié)作的資源發(fā)現(xiàn)和共享,因此擁有自組織、可擴(kuò)展性、魯棒性、容錯性以及負(fù)載均衡等優(yōu)點。P2P技術(shù)被廣泛應(yīng)用于文件共享、網(wǎng)絡(luò)視頻、網(wǎng)絡(luò)電話等領(lǐng)域,以分布式資源共享和并行傳輸?shù)奶攸c,為用戶提供了更多的資源、更高的可用帶寬以及更好的服務(wù)質(zhì)量。目前P2P流媒體關(guān)鍵技術(shù)主要包括文件定位技術(shù)、節(jié)點的選擇、容錯機(jī)制、安全機(jī)制等。3流觀看技術(shù)模塊該系統(tǒng)意在實現(xiàn)手機(jī)終端上進(jìn)行高清視頻的在線點播,主要任務(wù)包括實現(xiàn)P2P網(wǎng)絡(luò)服務(wù)的架設(shè)、實現(xiàn)P2P服務(wù)器的架設(shè)、實現(xiàn)視頻源服務(wù)器的架設(shè)、實現(xiàn)P2P種子服務(wù)器的架設(shè)、實現(xiàn)Android平臺的JXTA技術(shù)、實現(xiàn)Android平臺的視頻流播放技術(shù)、實現(xiàn)Android平臺的視頻播放與控制技術(shù)。(1)系統(tǒng)的功能如下:1)初始化P2P網(wǎng)絡(luò),自動搜索P2P集合點。2)讀取集合點節(jié)點列表。3)讀取播放列表。4)通過播放列表種子服務(wù)器搜索片源種子。5)在集合點中搜索片源種子。6)連接片源種子節(jié)點,請求傳輸。7)種子節(jié)點接到請求,進(jìn)行握手,握手完成后開始傳輸數(shù)據(jù)。8)數(shù)據(jù)緩沖完成后開始播放影片。(2)系統(tǒng)的功能模塊如圖2所示。(3)開發(fā)環(huán)境1)操作系統(tǒng):MicrosoftWindowsXPProfessional。2)程序語言:Android,Java。3)開發(fā)包:JDK1.6,AndroidSDK1.5,JXTA。4)IDE:Eclipse3.5.1,ADTplugin。4系統(tǒng)總體流程該系統(tǒng)主要通過JXTA協(xié)議,構(gòu)建一個P2P網(wǎng)絡(luò),在網(wǎng)絡(luò)中設(shè)置有若干個PC機(jī)節(jié)點和手機(jī)節(jié)點,每個節(jié)點中都有共享文件,任意節(jié)點可通過P2P網(wǎng)絡(luò)集合點訪問其他節(jié)點的共享資源。系統(tǒng)啟動時首先進(jìn)行初始化,初始化過程會檢查緩存情況、啟動JXTA網(wǎng)絡(luò)連接,啟動之后將搜索JXTA網(wǎng)絡(luò)集合點RDV,讀取集合點上的Peer列表。待初始化完畢之后,系統(tǒng)等待用戶的視頻點播請求,點播之后系統(tǒng)向集合點請求資源,集合點將相應(yīng)的節(jié)點列表反饋給請求節(jié)點,接到反饋的節(jié)點列表之后,系統(tǒng)向相應(yīng)的節(jié)點發(fā)送文件傳輸請求,經(jīng)握手后即開始傳輸數(shù)據(jù),傳輸過程將檢查緩存情況,待緩存完畢之后即可開始播放視頻,系統(tǒng)的主要流程如圖3所示。該系統(tǒng)的P2P網(wǎng)絡(luò)主要由3個部分組成,分別是Android平臺節(jié)點、PC平臺節(jié)點和Peer集合點,其中Peer集合點負(fù)責(zé)收集和發(fā)送節(jié)點列表信息,起到一個系統(tǒng)調(diào)度的作用,各節(jié)點可以通過集合點獲取存在的節(jié)點列表,通過該列表,即可對該對等網(wǎng)絡(luò)中的任意節(jié)點進(jìn)行訪問,接收和發(fā)送數(shù)據(jù),該系統(tǒng)的整體結(jié)構(gòu)示意圖如圖4所示。5功能菜單設(shè)計播放器由播放功能單元和功能菜單組成,播放器可以實現(xiàn)視頻播放功能,功能菜單作為播放功能的輔助選項可以讓用戶選擇播放文件、查看系統(tǒng)狀態(tài)、進(jìn)行系統(tǒng)設(shè)置、進(jìn)行P2P聊天等功能。系統(tǒng)主界面如圖5所示,頂端為標(biāo)題欄,緊接著視頻播放窗口和播放器控制按鈕,最下方為Menu功能菜單。5.1actity接口播放器的主控界面如圖6所示,該播放器主要通過調(diào)用AndroidAPI中的MediaPlayer類來實現(xiàn),首先要在Activity里創(chuàng)建SurfaceView,這個View與控制SurfaceView的SurfaceHolder對象,搭配MediaPlayer的SetDisplay()方法來制定要將圖像顯示于指定的SurfaceView之上。要在Activity里面配置SurfaceView,必須讓Activity實現(xiàn)SurfaceHolder.Callback接口,在Activity當(dāng)中覆蓋surfaceChanged()與surfaceDestroyed()方法。主程序構(gòu)建了MediaPlayer()對象,通過MediaPlayer.setDisplay(SurfaceHolder)方法,讓MediaPlayer播放影片時,將圖像顯示在指定的SurfaceView中,播放器主要方法的相關(guān)代碼如下:5.2生成主題函數(shù)Menu功能菜單如圖5所示,實現(xiàn)Menu功能菜單主要通過手機(jī)接口的MenuShotcut,也就是所謂的MenuKey。程序除了默認(rèn)覆蓋的OnCreat之外,還需要另外新建兩個類函數(shù):onCreatoptionsMenu()與onOptionsItemSelected(),前者為創(chuàng)建Menu菜單的項目,后者是處理菜單被選擇運行后的時間處理。以下是onCreatoptionsMenu()與onOptionsItemSelected()的源代碼:5.3方便用戶選擇用戶表信息該系統(tǒng)的播放列表界面如圖7所示,該界面展現(xiàn)了當(dāng)前讀取的XML文件中的播放列表信息,方便用戶進(jìn)行選擇。該播放列表主要通過AlertDialog.Builder方法類來實現(xiàn),通過加載讀取的XML文件,就可以把信息顯示于屏上。播放列表的AlertDialog.Builder調(diào)用方法,相關(guān)代碼如下:5.4基于adpertsing的請求支持該程序主要用于對網(wǎng)絡(luò)上的Peer節(jié)點進(jìn)行搜索,維護(hù)一個節(jié)點列表。該搜索程序通過JXTA對等機(jī)發(fā)現(xiàn)協(xié)議(PDP)進(jìn)行節(jié)點搜索,PeerDiscoveryProtocol(PDP)定義了發(fā)現(xiàn)其他Peer和資源的協(xié)議,該協(xié)議包括兩個方面,一方面用于請求獲得其他Peer的Advertisement;另一方面用于相應(yīng)其他Peer的這種請求。Peers給所有已知的Peer和RendezvousPeer發(fā)送一個DiscoveryQueryMessage,RendezvousPeer對discovery請求進(jìn)行處理,并返回一個DiscoveryResponseMessage,其中包含它緩存中的advertisement。另外,它還把這個請求廣播給所有知道的Peer,收到請求的Peer搜索本地緩存尋找匹配的advertisement,如果找到,就直接給最初的請求方發(fā)送一個DiscoveryResponseMessage。該程序運行在一個線程(Thread)中,在該線程中,執(zhí)行一個循環(huán),每隔60*1000毫秒獲取一次節(jié)點列表。節(jié)點搜索線程代碼如下:5.5pipewelling東南角文件發(fā)送的實現(xiàn)是利用P2PSocket編寫的程序,可以在任意Peer之間對等地傳輸文件。該程序通過JXTA管道綁定協(xié)議,由Pipe向遠(yuǎn)程Peer發(fā)送文件,文件將以流的形式傳遞,通過PipeMsgEvent實現(xiàn)PipeMsgListener,每次當(dāng)有消息傳送到管道的時候,事件將被捕獲。通過doFileListRequest處理共享文件列表的請求,向?qū)Ψ桨l(fā)送包含共享文件名的列表的消息。在一個線程中執(zhí)行一個循環(huán),同過JXTA網(wǎng)絡(luò)進(jìn)行文件資源廣播,如果得到回應(yīng)就進(jìn)行資源請求確認(rèn),確認(rèn)完成之后調(diào)用this.socketService.sendFile()函數(shù)發(fā)送當(dāng)前文件資源,文件發(fā)送循環(huán)程序的相關(guān)代碼如下:5.6基于約束的pla網(wǎng)絡(luò)節(jié)點列表收集主要完成啟動并初始化JXTA網(wǎng)絡(luò),形成一個網(wǎng)絡(luò)集合點RendezvousPeer,集合點服務(wù)的主要功能是允許Peer向網(wǎng)絡(luò)上的其他Peer傳播消息。該集合點可以監(jiān)聽到所有相鄰網(wǎng)絡(luò)請求連接的Peer節(jié)點,包括PC機(jī)模擬節(jié)點和Android手機(jī)節(jié)點,通過一個節(jié)點列表對當(dāng)前節(jié)點的信息進(jìn)行維護(hù),接收節(jié)點的連接與退出請求。該結(jié)合點類的設(shè)計主要是通過集合點協(xié)議RVP(RendezvousProtocol),簡單Peer運用該協(xié)議同集合點相連接,由集合點代表自己向其他Peer傳播消息。RVP的實現(xiàn)扮演雙重角色,為傳播消息提供了統(tǒng)一的API,該功能不依賴Peer是否配置成集合點。節(jié)點收集類PeerDroid_RDV的相關(guān)代碼如下:6androidi視頻技術(shù)的實現(xiàn)雖然在PC機(jī)上JXTA可以完美運行,但要把JXTA平臺完全移植到Android上并不是一件容易的事情。PeerDroid框架將JXTA中專門用于移動開發(fā)的JXME平臺完美的移植到了Android平臺。本系統(tǒng)借助PeerDroid搭建一個JXTA網(wǎng)絡(luò),一個虛擬PC機(jī)節(jié)點,一個Android節(jié)點,實現(xiàn)了Android和PC節(jié)點之間互傳文件。通過AndroidAPI實現(xiàn)了視頻的播放與控制。最后,將Android視頻播放器與PeerDroid進(jìn)行整合,通過點播請求傳輸文件,然后播放視頻。借助3G網(wǎng)絡(luò),Android未來的市場占有率將望超過Symbian平臺。文件接收的實現(xiàn)通過J
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國POM軸承襯套行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年度食用菌食品安全追溯體系合作協(xié)議3篇
- 二零二五年度魚塘經(jīng)營承包防污染治理合同3篇
- 二零二五年度酒店餐飲單位服務(wù)管理協(xié)議2篇
- 二零二五年度深海資源勘探開發(fā)合同規(guī)范3篇
- 二零二五年度合同管理員崗位職責(zé)與合同管理技能培訓(xùn)協(xié)議2篇
- 二零二五版建筑外墻防水保溫施工合同樣本2篇
- 二零二五年度銀行貸款擔(dān)保協(xié)議書范本2篇
- 人工智能解決方案行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- 中國深圳酒店行業(yè)市場全景評估及發(fā)展戰(zhàn)略研究報告
- 2024年日語培訓(xùn)機(jī)構(gòu)市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 2024年公安機(jī)關(guān)理論考試題庫附參考答案(基礎(chǔ)題)
- 歷史-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 2024年安全生產(chǎn)法律、法規(guī)、標(biāo)準(zhǔn)及其他要求清單
- 2023年高考文言文閱讀設(shè)題特點及備考策略
- 抗心律失常藥物臨床應(yīng)用中國專家共識
- 考級代理合同范文大全
- 2024解析:第三章物態(tài)變化-講核心(原卷版)
- DB32T 1590-2010 鋼管塑料大棚(單體)通 用技術(shù)要求
- 安全行車知識培訓(xùn)
- 2024年安徽省高校分類對口招生考試數(shù)學(xué)試卷真題
評論
0/150
提交評論