版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要 本文講述了基于Go的流媒體視頻網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)。開發(fā)這套流媒體視頻網(wǎng)站能讓用戶無論在視頻點(diǎn)播還是視頻的上傳下載都有一種完美的用戶體驗(yàn),對(duì)于高并發(fā)的場(chǎng)景可以輕松面對(duì)。 本系統(tǒng)采用了GoLand2019.1.3和WebStrom3.2作為前后端開發(fā)工具,選用Mysql8.0.15作為后臺(tái)數(shù)據(jù)庫(kù)。該系統(tǒng)包含了5個(gè)主要功能模塊有:視頻點(diǎn)播模塊,視頻管理模塊,用戶評(píng)論模塊,用戶管理模塊,流控模塊。后端采用Golang語言實(shí)現(xiàn),以及所提供優(yōu)良的nativehttp庫(kù)實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求。采用模塊化設(shè)計(jì),API對(duì)接前端服務(wù),后端分為Streaming和Scheduler模塊處理相應(yīng)事務(wù)。前端采用Vue.js前端框架,結(jié)合Element-Ui對(duì)后端返回的JSON數(shù)據(jù)做處理展示。用戶通過本網(wǎng)站注冊(cè)、注銷、退出賬號(hào),登錄用戶可以上傳、刪除等管理自己的視頻。游客與登錄用戶可以觀看其他人上傳的視頻,并可以評(píng)論。關(guān)鍵詞:B/S架構(gòu);前后端分離;MVC;流媒體點(diǎn)播系統(tǒng)
DesignandImplementationofStreamingVideoWebsiteAbstractThispaperdescribesthedesignandimplementationofastreamingvideowebsitebasedonGo.Thedevelopmentofthisstreamingmediavideowebsiteallowsuserstohaveaperfectuserexperienceinbothvideo-on-demandandvideouploadanddownload,andcaneasilyfacehigh-concurrencyscenarios.ThissystemusesGoLand2019.1.3andWebStrom3.2asthefront-enddevelopmenttools,andMysql8.0.15astheback-enddatabase.Thesystemcontains5mainfunctionalmodules:videoondemandmodule,videomanagementmodule,usercommentmodule,usermanagementmodule.ThebackendisimplementedinGolanglanguage,andtheexcellentnativehttplibraryisprovidedtoimplementnetworkrequests.Modulardesignisadopted,andtheAPIconnectstothefront-endservices.Theback-endisdividedintoStreamingandSchedulermodulestohandlethecorrespondingtransactions.Thefront-endusestheVue.jsfront-endframework,combinedwithElement-UitoprocessanddisplaytheJSONdatareturnedbytheback-end.Userscanregister,logout,andlogoutthroughthiswebsite,andthelogged-inusercanupload,delete,etc.tomanagetheirownvideos.Visitorsandlogged-inuserscanwatchvideosuploadedbyothersandcancomment.Keywords:B/Sarchitecture;front-endandback-endseparation;MVC;streamingmediaon-demandsystem.
目錄1緒論 71.1課題背景與研究意義 71.1.1課題背景 71.1.2研究意義 81.2國(guó)內(nèi)外流媒體視頻點(diǎn)播行業(yè)的發(fā)展概況 91.2.1國(guó)內(nèi)流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 91.2.2國(guó)外流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 92可行性分析 102.1技術(shù)可行性分析 102.2經(jīng)濟(jì)可行性分析 102.3操作可行性分析 102.4法律可行性分析 103需求分析 113.1系統(tǒng)設(shè)計(jì)目標(biāo) 113.2業(yè)務(wù)流程分析 123.3系統(tǒng)用例 133.3.1游客用例分析 133.3.2登錄用戶用例分析 153.4功能性需求分析 183.5非功能性需求分析 194概要設(shè)計(jì) 204.1系統(tǒng)模塊總體設(shè)計(jì) 204.2系統(tǒng)功能模塊圖 214.3數(shù)據(jù)庫(kù)設(shè)計(jì) 215詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 265.1系統(tǒng)的運(yùn)行環(huán)境 265.2相關(guān)技術(shù)簡(jiǎn)介 275.2.1Golang編程語言簡(jiǎn)介 275.2.2Vue.js前端框架簡(jiǎn)介 275.2.3Axios技術(shù)簡(jiǎn)介 285.2.4Element-UI網(wǎng)站快速成型工具 285.3系統(tǒng)首頁(yè)設(shè)計(jì) 285.4系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn) 295.4.1用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 295.4.2流媒體視頻點(diǎn)播模塊的設(shè)計(jì)與實(shí)現(xiàn) 305.4.3視頻管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 315.4.4用戶評(píng)論模塊的設(shè)計(jì)與實(shí)現(xiàn) 335.4.5流控模塊的設(shè)計(jì)與實(shí)現(xiàn) 346系統(tǒng)測(cè)試 356.1軟件測(cè)試簡(jiǎn)介 356.2測(cè)試原則 356.3測(cè)試需求 356.4測(cè)試用例 366.5單元測(cè)試 386.6集成測(cè)試 396.7系統(tǒng)測(cè)試 396.8驗(yàn)收測(cè)試 40結(jié)論 40參考文獻(xiàn) 41謝辭 42
1緒論1.1課題背景與研究意義1.1.1課題背景 隨著我國(guó)社會(huì)消費(fèi)水平的提高,人們?cè)絹碓街匾暽願(yuàn)蕵?,因此流媒體視頻點(diǎn)播市場(chǎng)得到了極大的拓展,為流媒體視頻產(chǎn)業(yè)的發(fā)展創(chuàng)造了許多有利的條件。流媒體的出現(xiàn)之前,如果人們想從網(wǎng)絡(luò)看視頻和聽音樂,他們必須下載視頻和音頻文件的計(jì)算機(jī)存儲(chǔ)才能點(diǎn)擊播放,不僅浪費(fèi)了下載時(shí)間和硬盤空間,而且也不能滿足消費(fèi)者的便利和確切的需要。流媒體視頻點(diǎn)播的發(fā)展克服了許許多多的不足之處。流媒體視頻一般指的是視頻文件的傳輸以及各種各樣壓縮技術(shù),將影像信息放置在系統(tǒng)的后臺(tái)服務(wù)器上進(jìn)行處理以及壓縮等等,以此使用戶可以在線上觀看,從而再也不用等待整個(gè)壓縮文件下載到個(gè)人計(jì)算機(jī)上??梢哉f流媒體視頻點(diǎn)播的技術(shù)是起源于寬帶互聯(lián)網(wǎng)時(shí)代,因經(jīng)濟(jì)得以發(fā)展,人們愈發(fā)渴望某種新型的網(wǎng)絡(luò)科技來相互通信,自90年代以來,一家名為ProgressiveNetWorks的美國(guó)公司就成立了,Media在當(dāng)時(shí)的互聯(lián)網(wǎng)上正式宣布發(fā)布,當(dāng)時(shí)他們推出了一款新型的RealAudioC/S音頻接收系統(tǒng),更是在這之后的幾年間遵循了網(wǎng)絡(luò)流媒體技術(shù)的發(fā)展趨勢(shì)。在一九九七年的九月份的時(shí)候,這所企業(yè)改名為RealNetworks,并且前前后后的推出了RealPlayer系列流行的流媒體視頻點(diǎn)播的播放器,在其最繁華最好的時(shí)候,它在該領(lǐng)域的市場(chǎng)份額一度超過了百分之八十五之多,RealNetworks是流媒體視頻點(diǎn)播的真正祖先。但在那之后,微軟公司和蘋果公司看到了流媒體視頻點(diǎn)播行業(yè)的巨大潛力。一方面,它強(qiáng)大的競(jìng)爭(zhēng)攻勢(shì)讓現(xiàn)實(shí)新聞感到了危機(jī)的存在,再者,從另一個(gè)方面去看,它也在不知不覺中推動(dòng)了流媒體視頻點(diǎn)播的長(zhǎng)遠(yuǎn)進(jìn)步,這使得流媒體視頻點(diǎn)播的飛速進(jìn)步扎根人心。在早些時(shí)候,流媒體視頻的點(diǎn)播主要是應(yīng)用在窄帶互聯(lián)網(wǎng)上。由于帶寬速度條件的各種各樣制約以及其局限性,直到二十世紀(jì)九十年代末,人們卻還只能在互聯(lián)網(wǎng)上看到一個(gè)很非常非常小的流媒體視頻的播放窗口。在千禧年下半年,再者因互聯(lián)網(wǎng)的全球性的飛速進(jìn)步,寬帶不再是一個(gè)夢(mèng)想。作為流媒體視頻點(diǎn)播技術(shù)的領(lǐng)頭羊,微軟、蘋果等美國(guó)公司近乎處于相同的時(shí)間向全世界推出了它們最新的流媒體視頻點(diǎn)播技術(shù)的寬帶解決方案。可以看出,在極其短暫的時(shí)間內(nèi),流媒體技術(shù)取得了騰飛。在貳零零四年的時(shí)候,我們可以看到流媒體的發(fā)展,我們還可以在互聯(lián)網(wǎng)上進(jìn)行全方位的視聽接觸,真正的實(shí)現(xiàn)了一個(gè)人坐在一個(gè)房間里,環(huán)游世界。1.1.2研究意義因信息社會(huì)實(shí)現(xiàn)了騰飛,流媒體視頻點(diǎn)播的技術(shù)在互聯(lián)網(wǎng)媒體傳播中起著領(lǐng)頭羊的作用。包括但不限于例如流媒體視頻的點(diǎn)播或者遠(yuǎn)程的教育的新型模式,以及企業(yè)中應(yīng)用廣泛的視頻會(huì)議、或者是當(dāng)下紅極一時(shí)的直播,誕生了許多網(wǎng)紅,線上新聞信息發(fā)布,大大縮短民眾獲取資訊的時(shí)間,最后是互聯(lián)網(wǎng)廣告等應(yīng)用空前廣泛,刺激了消費(fèi),拉動(dòng)了經(jīng)濟(jì)的發(fā)展,更是方便了人們的在全世界的信息的互換和情感的交流。流媒體視頻的點(diǎn)播已然成為不僅僅國(guó)外,甚至是在我國(guó)國(guó)內(nèi)寬帶建設(shè)中比重相當(dāng)大的領(lǐng)域之一,大多數(shù)的群體對(duì)于這些流媒體點(diǎn)播的技術(shù)在將來發(fā)展普遍持積極樂觀想法。并且互聯(lián)網(wǎng)的巨頭們表示,因互聯(lián)網(wǎng)的用戶激烈增長(zhǎng),企業(yè)們更是要把握當(dāng)下時(shí)機(jī)探索流媒體點(diǎn)播的科技技術(shù)的發(fā)展。流媒體視頻的點(diǎn)播技術(shù)搖身一變,儼然已經(jīng)占據(jù)互聯(lián)網(wǎng)不可或缺的部分,進(jìn)而發(fā)動(dòng)了互聯(lián)網(wǎng)對(duì)于整體的結(jié)構(gòu)的革命,促進(jìn)了信息經(jīng)濟(jì)的騰飛。在這幾年期間,流媒體點(diǎn)播的技術(shù)更是應(yīng)用在全球的各個(gè)角落。較為引人注目的是在壹九九五年的時(shí)候,劃時(shí)代的互聯(lián)網(wǎng)流媒體播放器的問世,流媒體視頻的點(diǎn)播在因特網(wǎng)的應(yīng)用呈現(xiàn)直線的激增。在國(guó)際上,各種各樣的權(quán)威機(jī)構(gòu)正在對(duì)流媒體視頻的點(diǎn)播進(jìn)行全面的深入調(diào)查。僅僅在千禧那年,在線觀看流媒體視頻的人數(shù)就爬升了六十五個(gè)百分點(diǎn)。而在網(wǎng)絡(luò)科技成熟而又發(fā)達(dá)的西方,這些流媒體視頻點(diǎn)播的接入量?jī)叭桓咧烈粌|多,大概占領(lǐng)了互聯(lián)網(wǎng)的用戶數(shù)量規(guī)模的1/3。而在亞洲大陸,這一數(shù)字的規(guī)模呈現(xiàn)爆發(fā)式的增加至少到達(dá)兩千余萬了,達(dá)到了因特網(wǎng)使用者的1/9。隨著用戶的增長(zhǎng),視頻流媒體的技術(shù)在互聯(lián)網(wǎng)上的應(yīng)用逐年顯著增加。到目前來看,流媒體視頻點(diǎn)播的市場(chǎng)營(yíng)收能力已展示其無比雄厚的潛能。這龐大的蛋糕吸引了無數(shù)的企業(yè)家爭(zhēng)先恐后的競(jìng)爭(zhēng)。在這數(shù)年來,Apple等眾多之明企業(yè)對(duì)外宣布成立互聯(lián)網(wǎng)流媒體聯(lián)盟,目的是一起加速發(fā)展流媒體的市場(chǎng)以及優(yōu)化改變當(dāng)下格局,并且制定了與之對(duì)應(yīng)的標(biāo)準(zhǔn)和各種所要執(zhí)行的協(xié)議。也是當(dāng)時(shí),全球范圍內(nèi)流媒體的市場(chǎng)和競(jìng)爭(zhēng)態(tài)勢(shì)逐漸明朗。該如何在這個(gè)市場(chǎng)上獲得更大的蛋糕份額已經(jīng)變?yōu)樵S許多多的企業(yè)家關(guān)注的焦點(diǎn)。西放國(guó)家的廠商涌入促進(jìn)了我們中國(guó)流媒體市場(chǎng),使得其發(fā)展愈發(fā)繁榮,不過競(jìng)爭(zhēng)也會(huì)愈發(fā)激烈。從現(xiàn)今來看,對(duì)我國(guó)的流媒體視頻點(diǎn)播領(lǐng)域的影響更是積極向上的。目前大多數(shù)的網(wǎng)站是基于Java的Springboot框架或Python的Flask框架設(shè)計(jì)實(shí)現(xiàn)的。這些主流技術(shù)集成度較高,不易于了解底層,且編譯之后不是機(jī)器語言或是解釋型語言,運(yùn)行效率偏慢,對(duì)于高并發(fā)的處理略微偏弱或者需要引入第三方庫(kù)才能得以實(shí)現(xiàn)。本人開發(fā)的流媒體視頻網(wǎng)站目標(biāo)是讓用戶在視頻點(diǎn)播和視頻上傳下載兩方面都擁有完美的用戶體驗(yàn),并且可以輕松面對(duì)高并發(fā)的場(chǎng)景。1.2國(guó)內(nèi)外流媒體視頻點(diǎn)播行業(yè)的發(fā)展概況1.2.1國(guó)內(nèi)流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 據(jù)權(quán)威機(jī)構(gòu)的調(diào)查結(jié)果顯示截至貳零一四那一年,中國(guó)的流媒體視頻點(diǎn)播的用戶的人數(shù)已經(jīng)高至四億有余,同比上升二十六點(diǎn)八個(gè)百分點(diǎn),更擁有百分之五十六點(diǎn)二的網(wǎng)民有使用流媒體視頻網(wǎng)站的習(xí)慣,龐大的群體刺激了國(guó)內(nèi)流媒體視頻網(wǎng)站的行業(yè)發(fā)展,這些年來,騰訊視頻、愛奇藝、優(yōu)酷、Bilibili等流媒體網(wǎng)站如雨后春筍般,并呈現(xiàn)不斷增長(zhǎng)的態(tài)勢(shì)。從2006年開始,我國(guó)第一個(gè)流媒體網(wǎng)站誕生后到現(xiàn)在僅僅十余年,但其在段時(shí)間內(nèi)的發(fā)展卻十分的驚人。流媒體網(wǎng)站依托于互聯(lián)網(wǎng)、移動(dòng)手機(jī)等新生媒體,在短時(shí)間內(nèi)得到了質(zhì)的提升。 相對(duì)于國(guó)外,我國(guó)流媒體網(wǎng)站的發(fā)展起步還是稍微較晚,且視頻質(zhì)量殘次不齊,以低質(zhì)視頻追逐高點(diǎn)擊率?;蛘咭曨l資源的同質(zhì)化現(xiàn)象嚴(yán)重,除部分專業(yè)化視頻網(wǎng)站在內(nèi)容上做得比較突出之外,其他得在視頻資源方面的個(gè)性化優(yōu)勢(shì)得不到凸顯。1.2.2國(guó)外流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 相對(duì)于國(guó)內(nèi)流媒體視頻,西方的流媒體行業(yè)發(fā)展的時(shí)間更早,誕生了許許多多非常著名的流媒體視頻網(wǎng)站,如:YouTube、Netflix、Vimeo、Dailymotion等等數(shù)不勝數(shù),而最具代表性的網(wǎng)站是Youtube和Netflix。在全球范圍內(nèi)都有龐大的用戶,也基于用戶數(shù)量龐大的原因,優(yōu)質(zhì)的視頻資源相對(duì)于國(guó)內(nèi)也比較多,尤其是國(guó)內(nèi)所被詬病的原創(chuàng)視頻的數(shù)量。 相對(duì)于國(guó)內(nèi),西方流媒體視頻是以訂閱數(shù)為主要盈利方式。在貳零一七年,Netfli與和HBO的收入分別為將近十二億美元和六十三億美元有余。訂閱收入的增長(zhǎng)率分別為百分之五十八和百分之十點(diǎn)六。但是在Netflix在DVD租賃業(yè)務(wù)卻呈現(xiàn)斷崖式的下跌態(tài)勢(shì)。Netflix自二零一一年將會(huì)全面向流媒體視頻點(diǎn)播的業(yè)務(wù)的轉(zhuǎn)型,更是借助行業(yè)的發(fā)展紅利和自身優(yōu)異的經(jīng)營(yíng)布局的能力不斷向其他的國(guó)家擴(kuò)張市場(chǎng)份額,其渠道的優(yōu)勢(shì)和全球分發(fā)的能力也逐漸顯現(xiàn)。2可行性分析2.1技術(shù)可行性分析技術(shù)上的可行性的分析主要指的是用技術(shù)的眼光分析目前的技術(shù)水平和能力是否可以順利完成所分配的開發(fā)工作任務(wù),以及硬件的配置和軟件的配置、各類技術(shù)人員的數(shù)量、水平等能否充分的滿足開發(fā)任務(wù)工作的的需求。 我所要開發(fā)的流媒體視頻點(diǎn)播系統(tǒng)主要是處理視頻流數(shù)據(jù),以當(dāng)下的計(jì)算機(jī)硬件以及軟件和個(gè)人能力,可以滿足系統(tǒng)的開發(fā)與運(yùn)行。本流媒體視頻網(wǎng)站前端采用Vue.js框架以及Element-UI的GUI組件庫(kù)、后端采用Golang作為開發(fā)語言,以及開源項(xiàng)目Httprouter作為后端HTTP路由、后臺(tái)數(shù)據(jù)庫(kù)采用Mysql、在前端使用Axios向后端服務(wù)器發(fā)起API請(qǐng)求,并通過JSON格式返回?cái)?shù)據(jù)。2.2經(jīng)濟(jì)可行性分析經(jīng)濟(jì)的可行性分析旨在,例如開發(fā)本流媒體視頻點(diǎn)播網(wǎng)站所投入的資金和開發(fā)完成后,本流媒體視頻點(diǎn)播網(wǎng)站系統(tǒng)投入使用后所帶來的經(jīng)濟(jì)收益進(jìn)行對(duì)比和分析,確認(rèn)所開發(fā)的系統(tǒng)是否會(huì)給企業(yè)帶來一定的經(jīng)濟(jì)收益。隨著生活水平的提高,人們?cè)絹碓阶⒅貖蕵飞畹馁|(zhì)量,對(duì)于娛樂的需求日益增大,與之對(duì)應(yīng),流媒體的發(fā)展也越顯重要。流媒體視頻點(diǎn)播網(wǎng)站是一個(gè)可以直接產(chǎn)生經(jīng)濟(jì)效益的投資,不僅可以通過訂閱的模式為視頻的創(chuàng)作者帶來創(chuàng)收,廣告收費(fèi)模式也推動(dòng)了其他產(chǎn)業(yè)的發(fā)展。2.3操作可行性分析 本流媒體視頻點(diǎn)播網(wǎng)站采用B/S架構(gòu)實(shí)現(xiàn),只需要通過瀏覽器就能訪問本系統(tǒng)。用戶面向全年齡段人群,因此操作十分簡(jiǎn)便,只需要使用瀏覽器即可。界面采用Element-UI組件庫(kù),設(shè)計(jì)簡(jiǎn)約、友好,用戶可以在短時(shí)間掌握該流媒體視頻點(diǎn)播網(wǎng)站的使用方法。2.4法律可行性分析法律的可行性旨在于研究在本流媒體視頻點(diǎn)播系統(tǒng)開發(fā)在這一系列過程中是否可能涉及到有關(guān)合同或者侵權(quán)、責(zé)任等等與法律相違背和抵觸的問題。本流媒體視頻點(diǎn)播網(wǎng)站是本人在指導(dǎo)老師的指導(dǎo)下獨(dú)立完成的,故不存在侵權(quán)行為或者由于本系統(tǒng)帶來的法律糾紛等問題,所以在法律上是可行的。3需求分析根據(jù)系統(tǒng)開發(fā)周期的要求可以分成五個(gè)階段,分別是:計(jì)劃階段和需求分析階段、設(shè)計(jì)階段和實(shí)施階段、最后一個(gè)階段為支持階段。例如在流媒體視頻網(wǎng)站系統(tǒng)的進(jìn)展計(jì)劃完成后,第一步是根據(jù)本流媒體視頻點(diǎn)播項(xiàng)目計(jì)劃所要求的開啟系統(tǒng)需求分析階段。3.1系統(tǒng)設(shè)計(jì)目標(biāo) 系統(tǒng)規(guī)劃的總體任務(wù)是實(shí)現(xiàn)流媒體視頻點(diǎn)播。用戶可以對(duì)自己所創(chuàng)作的視頻進(jìn)行上傳、刪除,查看觀看人數(shù)以及評(píng)論人數(shù)。用戶可以觀看瀏覽其他視頻,評(píng)論等。本系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)該滿足以下目標(biāo):系統(tǒng)人機(jī)界面美觀,友好且便于操做,用戶可以進(jìn)行登錄、注冊(cè)、注銷操作;系統(tǒng)各個(gè)功能模塊顯示清晰,易于操作;實(shí)現(xiàn)視頻的搜索功能實(shí)現(xiàn)流媒體視頻的上傳、刪除以及視頻基本信息的填寫功能;實(shí)現(xiàn)視頻的點(diǎn)播功能;實(shí)現(xiàn)流媒體的流控功能,防止用戶或黑客惡意訪問系統(tǒng)從而占用帶寬和系統(tǒng)內(nèi)存,提供流量控制;實(shí)現(xiàn)視頻的評(píng)論功能;實(shí)現(xiàn)視頻播放量的統(tǒng)計(jì)功能;實(shí)現(xiàn)視頻評(píng)論數(shù)統(tǒng)計(jì)功能;系統(tǒng)最大限度地實(shí)現(xiàn)易維護(hù)性和運(yùn)行穩(wěn)定性;由于本流媒體視頻點(diǎn)播網(wǎng)站系統(tǒng)的設(shè)計(jì)是動(dòng)態(tài)的,所以在把握控制本軟件開發(fā)的設(shè)計(jì)原則上就會(huì)顯得異常的重要。軟件開發(fā)的每一個(gè)人都務(wù)必了解在系統(tǒng)的設(shè)計(jì)基本原則,可以概括為以下的幾點(diǎn):各個(gè)子組件的復(fù)用性;最大程度的簡(jiǎn)潔,本人解決各種疑惑的大體方向都是把較為復(fù)雜的問題盡最大程度的減小,簡(jiǎn)潔化、簡(jiǎn)單化,這種解決方案也是我對(duì)于中間件或多層體系的最終期望和目的;對(duì)于任意一個(gè)組件的最終的代碼實(shí)現(xiàn)上應(yīng)該需要展示系統(tǒng)的核心特點(diǎn),因?yàn)橄到y(tǒng)的事物核心點(diǎn)僅僅只有一個(gè),所編寫的代碼如果越靠近核心點(diǎn),說明系統(tǒng)的設(shè)計(jì)就愈發(fā)簡(jiǎn)單,最初成品的系統(tǒng)就愈發(fā)穩(wěn)定。在大多數(shù)的表表現(xiàn),任意一個(gè)組件或許不可以映射系統(tǒng)事物的核心本質(zhì),可能更需要多個(gè)組件的組合以此來相互配合,那么能夠正確使用合適的設(shè)計(jì)模式就重中之重了;靈活的拓展性,如若本流媒體視頻點(diǎn)播網(wǎng)站的設(shè)計(jì)需要具備靈活性和拓展性,在后期可以在本系統(tǒng)的架構(gòu)上進(jìn)行二次、三次開發(fā)。3.2業(yè)務(wù)流程分析 流媒體視頻點(diǎn)播網(wǎng)站的業(yè)務(wù)流程描述如下:游客打開網(wǎng)站進(jìn)入主頁(yè),點(diǎn)擊登錄按鈕跳轉(zhuǎn)至登錄/注冊(cè)界面。未擁有賬戶的游客輸入賬戶和密碼,點(diǎn)擊注冊(cè)按鈕即可在本系統(tǒng)注冊(cè)新的賬號(hào),隨后以登錄用戶跳轉(zhuǎn)至網(wǎng)站主頁(yè)。已擁有賬戶的用戶輸入賬戶和密碼,點(diǎn)擊登錄后即可登錄本系統(tǒng),隨后以登錄用戶跳轉(zhuǎn)至網(wǎng)站主頁(yè)。已登錄用戶點(diǎn)擊右上角出現(xiàn)下拉框,有切換賬戶和退出登錄兩個(gè)選項(xiàng);點(diǎn)擊切換賬戶選項(xiàng)后系統(tǒng)將為用戶退出登錄當(dāng)前賬戶并跳轉(zhuǎn)至登錄頁(yè)面,并可重新登錄;點(diǎn)擊退出選項(xiàng)后系統(tǒng)將為用戶退出登錄當(dāng)前賬戶,用戶可以游客身份進(jìn)行其他操作。游客/登錄用戶可以從主頁(yè)中瀏覽所有已上傳至該網(wǎng)站的所有視頻信息。并可以點(diǎn)擊所感興趣的視頻跳轉(zhuǎn)至視頻播放頁(yè)面。在視頻播放頁(yè)面,游客/用戶使用HTML5播放器控制視頻的播放與暫停。視頻的下方為視頻的基本信息包括:流媒體的標(biāo)題、流媒體的描述、流媒體的上傳時(shí)間、流媒體的上傳作者等。在視頻播放頁(yè)面,視頻頁(yè)面底部是用戶評(píng)論部分,游客/用戶可以查看到對(duì)于該視頻的所有評(píng)論,并且已登錄的用戶可以發(fā)表評(píng)論。已登錄用戶在網(wǎng)站主頁(yè)可以進(jìn)入用戶視頻管理界面,在用戶視頻管理界面可以上傳視頻,填寫視頻的基本信息如視頻標(biāo)題、視頻描述、上傳視頻封面等操作。在用戶視頻管理界面顯示當(dāng)前用戶所上傳的所有視頻,并會(huì)對(duì)每個(gè)視頻進(jìn)行播放量統(tǒng)計(jì)和每個(gè)視頻的評(píng)論數(shù)統(tǒng)計(jì)。3.3系統(tǒng)用例 系統(tǒng)的用例指的是以文字的表現(xiàn)形式的情景描述,以此表現(xiàn)某一參與者使用本網(wǎng)站來實(shí)現(xiàn)一些特定的目的。系統(tǒng)的用例基本思想表現(xiàn)在:從參與者、用戶的觀點(diǎn)來看,使用者或許并不愿意深入了解本網(wǎng)站的內(nèi)部組件,使用者可能只想了解的是系統(tǒng)所能提供的服務(wù),也就是所被開發(fā)出來的網(wǎng)站將是如何被正確和高效使用的。3.3.1游客用例分析 本系統(tǒng)種游客的模塊用例圖,如圖3.1所示。圖3.1游客模塊用例圖 用例UC1:登錄 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:未登錄的用戶 涉及關(guān)注點(diǎn): -游客/未登錄用戶:希望獲取更多權(quán)限,使用更多功能。 前置條件:無。 成功保證:用戶信息存在數(shù)據(jù)庫(kù)中 主要成功場(chǎng)景:在本流媒體視頻點(diǎn)播網(wǎng)站的主頁(yè)點(diǎn)擊登錄,隨后跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面。在輸入框分別輸入用戶的賬號(hào)或者用戶的密碼。點(diǎn)擊登錄按鈕。用例UC2:注冊(cè) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客 涉及關(guān)注點(diǎn): -游客/未登錄用戶:希望獲取更多權(quán)限,使用更多功能。 前置條件:無。 成功保證:存儲(chǔ)新注冊(cè)用戶信息,在數(shù)據(jù)庫(kù)中生成新用戶的記錄。 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊登錄跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面。輸入注冊(cè)賬號(hào)、注冊(cè)密碼。點(diǎn)擊注冊(cè)按鈕3.3.2登錄用戶用例分析 已登錄用戶模塊用例圖,如圖3.2所示。圖3.2登錄用戶模塊用例圖用例UC3:查看視頻的評(píng)論 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客/登錄的用戶 涉及關(guān)注點(diǎn): -游客/登錄用戶:希望查看該視頻下其他用戶的見解和看法 前置條件:無。 成功保證:該視頻下有儲(chǔ)存其他用戶評(píng)論的信息 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊所想觀看的視頻。視頻下方瀏覽對(duì)于該視頻的評(píng)論。用例UC4:視頻點(diǎn)播 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客/登錄用戶 涉及關(guān)注點(diǎn): -游客/登錄用戶:希望觀看所感興趣的視頻 前置條件:無。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊所想觀看的視頻。進(jìn)入視頻頁(yè)面,在HTML5播放器點(diǎn)擊開始按鈕進(jìn)行視頻點(diǎn)播。用例UC5:視頻上傳 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望分享自己所創(chuàng)作的視頻。 前置條件:用戶已登錄網(wǎng)站。 成功保證:服務(wù)器成功存儲(chǔ)該視頻文件 主要成功場(chǎng)景:用戶視頻管理頁(yè)面點(diǎn)擊上傳按鈕。彈出視頻上傳頁(yè)面,選擇文件點(diǎn)擊上傳。跳轉(zhuǎn)至視頻信息表單填寫頁(yè)面,點(diǎn)擊提交。用例UC6:視頻刪除 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望刪除自己所上傳的視頻。 前置條件:用戶已上傳視頻并提交了視頻信息表單;用戶已登錄。 成功保證:視頻文件從服務(wù)器中刪除。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面選中所要?jiǎng)h除的視頻點(diǎn)擊右側(cè)刪除按鈕。確認(rèn)刪除,視頻刪除完畢。用例UC7:視頻播放量統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:無 前置條件:用戶已上傳所要統(tǒng)計(jì)播放量的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中更新播放量統(tǒng)計(jì)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻播放量數(shù)據(jù)。用例UC7:視頻播放量統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網(wǎng)站的播放量。 前置條件:用戶已上傳所要統(tǒng)計(jì)播放量的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中更新播放量統(tǒng)計(jì)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻播放量數(shù)據(jù)。用例UC8:視頻播評(píng)論數(shù)統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網(wǎng)站的評(píng)論數(shù)量。 前置條件:用戶已上傳所要統(tǒng)計(jì)評(píng)論數(shù)的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中存在評(píng)論數(shù)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻評(píng)論數(shù)的數(shù)據(jù)。3.4功能性需求分析本人模擬真實(shí)用戶的相關(guān)業(yè)務(wù)流程設(shè)計(jì)該系統(tǒng)的全部功能和特性,完成流媒體視頻點(diǎn)播網(wǎng)站的操作和使用使用權(quán)限:游客需求內(nèi)容:賬號(hào)注冊(cè)賬號(hào)登錄;視頻封面列表展示;視頻搜索;視頻點(diǎn)播;瀏覽評(píng)論; 使用權(quán)限:已登錄用戶 需求內(nèi)容:賬號(hào)登錄;賬號(hào)注銷;切換賬號(hào);視頻封面列表展示;視頻搜索;視頻點(diǎn)播;評(píng)論瀏覽、評(píng)論發(fā)表;視頻上傳、刪除;視頻播放量統(tǒng)計(jì);視頻評(píng)論數(shù)統(tǒng)計(jì);3.5非功能性需求分析一、性能的需求分析: (1)響應(yīng)的時(shí)間:通??梢匀萑滔鄳?yīng)的時(shí)間大概在0.1秒之內(nèi)。 (2)數(shù)據(jù)的準(zhǔn)確性:有關(guān)視頻的數(shù)據(jù)信息要求準(zhǔn)確。二、運(yùn)行需求分析:(1)硬件接口:本流媒體視頻點(diǎn)播網(wǎng)站不需要某種特定的硬件或者硬件的接口進(jìn)行支持。 (2)軟件接口:運(yùn)行于LinuxOS7.0及更高版本。三、其他需求分析:
(1)系統(tǒng)的并發(fā)性:本流媒體視頻點(diǎn)播網(wǎng)站對(duì)于用戶的并發(fā)性具有較高的需求。 (2)系統(tǒng)圖容錯(cuò)性:本流媒體視頻點(diǎn)播網(wǎng)站對(duì)于用戶的輸錯(cuò)會(huì)有相關(guān)的信息提示,使得本系統(tǒng)具有一定程度的容錯(cuò)。4概要設(shè)計(jì)4.1系統(tǒng)模塊總體設(shè)計(jì) 在系統(tǒng)需求以及功能分析的基礎(chǔ)之上,將本網(wǎng)站劃分成5個(gè)主要的功能模塊。視頻點(diǎn)播模塊:該功能可由游客和已登錄用戶來操作。該功能實(shí)現(xiàn)點(diǎn)擊播放網(wǎng)站已上傳的視頻。視頻管理模塊:視頻上傳:該功能只允許已登錄用戶來進(jìn)行操作,用戶可以上傳自己所創(chuàng)作的視頻,并且填寫有關(guān)視頻的基本信息和視頻封面。視頻刪除:該功能只允許已登錄用戶來進(jìn)行操作,用戶可以刪除自己所上傳的視頻。視頻播放量統(tǒng)計(jì):該功能只允許已登錄用戶來進(jìn)行操作,用戶可以查看自己已上傳視頻的播放量。視頻評(píng)論數(shù)統(tǒng)計(jì):該功能只允許已登錄用戶來進(jìn)行操作,用戶可以查看自己已上傳視頻的評(píng)論數(shù)用戶評(píng)論模塊:提供各用戶可以在對(duì)應(yīng)視頻下方發(fā)表自己的評(píng)論及見解,為用戶與用戶間提供交流的渠道。用戶管理:用戶注冊(cè):該功能提供游客申請(qǐng)注冊(cè)成為本網(wǎng)站會(huì)員,獲取其他權(quán)限。用戶登錄:該功能提供給擁有本網(wǎng)站賬號(hào)的用戶登錄本系統(tǒng)。賬戶注銷:該功能提供給已登錄用戶退出登錄本網(wǎng)站。流控模塊:該功能為防止用戶或黑客惡意訪問系統(tǒng)從而占用占用帶寬和系統(tǒng)內(nèi)存,提供流量控制。4.2系統(tǒng)功能模塊圖 根據(jù)以上的本流媒體視頻點(diǎn)播網(wǎng)站的系統(tǒng)模塊設(shè)計(jì),該系統(tǒng)的功能模塊圖如圖4.1所示。4.1系統(tǒng)功能模塊圖4.3數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)指的是軟件開發(fā)種的非常重要的組成部分,數(shù)據(jù)的設(shè)計(jì)是否合理、是否優(yōu)秀關(guān)系到整個(gè)系統(tǒng)的運(yùn)行效率以及后期的可維護(hù)性與可操作性。常用的數(shù)據(jù)庫(kù)有MySQL、MicrosoftSQLServer、NoSQL、MongoDB、Redis等。為了支持較大的數(shù)據(jù)量和保障安全性以及開發(fā)的便利性,本系統(tǒng)采用的是MySQL數(shù)據(jù)庫(kù)系統(tǒng),本系統(tǒng)的數(shù)據(jù)庫(kù)名是video_server,總共包含了6張數(shù)據(jù)表。本網(wǎng)站系統(tǒng)數(shù)據(jù)庫(kù)主要包含以下6張數(shù)據(jù)結(jié)構(gòu)表:users(用戶的基本信息表)該表用于記錄用戶的基本信息。本表的主要字段如表4.1所示。表4.1用戶基本信息表FieldTypeNullKeyDefaultExtraAliasidintNOPRINULLauto_increment唯一識(shí)別碼Login_nameVarcharYESUNINULL用戶名pwdtextNONULL密碼 用戶基本信息表E-R圖如圖4.2所示。圖4.2用戶基本信息表E-R圖video_info(流媒體視頻信息表)此表用于記錄系統(tǒng)所有流媒體視頻的基本信息。主要字段如表4.2所示。表4.2流媒體視頻信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthore_idintYESFOREIGNNULLnametextYESNULLdisplay_ctimetextYESNULLcreate_timedatetimeYESCURRENT_TIMESTAMPDEAFULTtitletextYESNULLvideo_descriptiontextYESNULLimg_namevarcharYESNULL 視頻信息表E-R圖如圖4.3所示。圖4.3視頻信息E-R圖session(session信息表)此表用于記錄用戶登錄狀態(tài)的session信息。主要字段如表4.3所示。表4.3Sesssion信息表FieldTypeNullKeyDefaultExtrasession_idtinytextNOPRINULLTTLtinytextYESNULLlogin_namevarcharYESNULLsession信息表E-R圖如圖4.4所示。圖4.4Session信息E-R圖comments(評(píng)論詳細(xì)信息表)此表用于記錄用戶對(duì)于流媒體視頻的評(píng)論信息。主要字段如表4.4所示。表4.4評(píng)論詳細(xì)信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLvideo_idvarcharYESNULLauthor_idintYESNULLcontenttextYESNULLtimedatetimeYESCURRENT_TIMESTAMP 評(píng)論信息表E-R圖如圖4.5所示。圖4.5評(píng)論信息E-R圖video_view(視頻播放量統(tǒng)計(jì)表)此表用于記錄每個(gè)視頻的播放量。主要字段如表4.5所示。表4.5視頻播放量統(tǒng)計(jì)表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthor_idintYESNULLvideo_idvarcharNONULLnum_of_visitorsbigintNONULL 視頻播放量統(tǒng)計(jì)表E-R圖如圖4.6所示。圖4.6視頻播放量統(tǒng)計(jì)表5詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1系統(tǒng)的運(yùn)行環(huán)境 (1)硬件環(huán)境: CPU:Intel(R)Core(TM)i5-8250UCPU@1.60GHz1.80GHz; 內(nèi)存:8GB; 硬盤256GB(2)軟件環(huán)境: 操作系統(tǒng):Windows10家庭中文版; 數(shù)據(jù)庫(kù):MySQL8.0.15; 開發(fā)工具:JetBrainsGoLand2019.1.3x64WebStorm2019.3.2x64VisualStudioCode瀏覽器:GoogleChrome版本81.0.4044.92(正式版本)(64位);分辨率:最佳效果1366×768。;5.2相關(guān)技術(shù)簡(jiǎn)介5.2.1Golang編程語言簡(jiǎn)介Go是2007年在Google設(shè)計(jì)的,旨在在多核,\o"Computernetwork"聯(lián)網(wǎng)機(jī)器和大型代碼庫(kù)時(shí)代提高編程效率。設(shè)計(jì)師想解決Google使用的其他語言的批評(píng),但要保留其有用的特征:靜態(tài)類型和運(yùn)行時(shí)效率(例如C++),可讀性和可用性(例如Python或JavaScript),高性能網(wǎng)絡(luò)和多處理。。Go于2009年11月公開發(fā)布,1.0版于2012年3月發(fā)布。Go在Google
以及許多其他組織和開源項(xiàng)目的生產(chǎn)中得到了廣泛使用。在2018年4月,原始徽標(biāo)被程式化的GO傾斜,尾隨流線形向右傾斜。但是,地鼠的
吉祥物保持不變。Thompson:一九八三年獲得圖靈獎(jiǎng)和在一九九八年獲得美國(guó)國(guó)家技術(shù)獎(jiǎng)(NationalMedalofTechnology)得主。他與DennisRitchie是Unix操作系統(tǒng)的原創(chuàng)者。Thompson也發(fā)明了C語言的B程序語言。Pike:曾是貝爾實(shí)驗(yàn)室(BellLabs)的Unix操作系統(tǒng)團(tuán)隊(duì),和Plan9操作系統(tǒng)計(jì)劃的成員。他與Thompson共事多年,并共創(chuàng)出廣泛使用的UTF-8字元編碼。RobertGriesemer:曾協(xié)助制作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。RussCox:Plan9開發(fā)者IanTaylor:還曾經(jīng)完善了已廣泛使用之開源碼編譯器GCCGolang這款編程語言到現(xiàn)在為止可以達(dá)到C和C++性能的百分之八十,卻遠(yuǎn)遠(yuǎn)高于快于C和C++程序的編譯鏈接的速度,就目前非?;馃崃餍械拈_源軟件docker、kubernetes、lxd等等都是使用Golang編程語言所編寫而成的,而且2016年Golang語言被評(píng)為年度編程語言,可見go的應(yīng)用場(chǎng)景非同一般。5.2.2Vue.js前端框架簡(jiǎn)介Vue.JS是一整套完善的用來搭建用戶界面的漸進(jìn)式的前端框架。與其他重量級(jí)框架,例如Angular.JS前端框架不同的是,Vue.JS采用的是自底向上增量開發(fā)的架構(gòu)。Vue.JS的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。而在另一個(gè)角度來看,Vue.JS完全是有能力驅(qū)動(dòng)使用單個(gè)文件組件和Vue.JS生態(tài)系統(tǒng)支持的函數(shù)庫(kù)開發(fā)的復(fù)雜單頁(yè)應(yīng)用。5.2.3Axios技術(shù)簡(jiǎn)介Axios是一個(gè)基于Promise用于瀏覽器和Node.js的HTTP客戶端,它本身具有以下特征:從瀏覽器中創(chuàng)建XMLHttpRequest。從node.js發(fā)出http請(qǐng)求。支持PromiseAPI。攔截請(qǐng)求。攔截響應(yīng)。轉(zhuǎn)換請(qǐng)求的數(shù)據(jù)。轉(zhuǎn)換響應(yīng)的數(shù)據(jù)。取消請(qǐng)求。5.2.4Element-UI網(wǎng)站快速成型工具Consistency與現(xiàn)實(shí)生活相一致:與現(xiàn)實(shí)生活的流程、邏輯保持一致,遵循用戶習(xí)慣的語言和概念;在界面中相一致:所有的元素和結(jié)構(gòu)需保持一致,比如:設(shè)計(jì)樣式、圖標(biāo)和文本、元素的位置等。Feedback控制反饋:通過多樣的界面樣式以及各種各樣的交互動(dòng)效讓用戶可以清晰的感知自己的操作;頁(yè)面反饋:通過用戶操作,通過頁(yè)面元素的變化清晰地展現(xiàn)當(dāng)前狀態(tài)。Efficiency簡(jiǎn)化流程:設(shè)計(jì)簡(jiǎn)潔直觀的流程和操作;清晰明確:語言表達(dá)清晰且表意明確,讓用戶快速理解進(jìn)而做出決策;幫助用戶識(shí)別:界面簡(jiǎn)單直白,讓用戶快速識(shí)別而非回憶,減少用戶記憶負(fù)擔(dān)。Controllability用戶決策:根據(jù)場(chǎng)景可給予用戶操作建議或安全提示,但不能代替用戶進(jìn)行決策;結(jié)果可控性:用戶完全可以進(jìn)行自由的進(jìn)行操作,包括但不限于撤銷、回退和終止當(dāng)前操作等。5.3系統(tǒng)首頁(yè)設(shè)計(jì) 本流媒體視頻點(diǎn)播網(wǎng)站的首頁(yè)設(shè)計(jì)樣式,如圖5.1所示。圖5.1網(wǎng)站的首頁(yè)5.4系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn)5.4.1用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn)該模塊主要用來使游客注冊(cè)成為網(wǎng)站會(huì)員,已有賬號(hào)的會(huì)員登錄本網(wǎng)站解鎖更多權(quán)限。包括用戶注冊(cè)、用戶登錄、用戶退出、用戶切換賬號(hào)四個(gè)部分:用戶注冊(cè),如圖5.2所示:圖5.2用戶登錄/注冊(cè)游客進(jìn)入登錄/注冊(cè)頁(yè)面(http://localhost:8080/login),通過router.POST("/user/:username",Login)來接收前端Axios發(fā)送的POST請(qǐng)求,Login函數(shù)來作為控制器處理游客的注冊(cè)請(qǐng)求,成功后跳轉(zhuǎn)回到流媒體視頻網(wǎng)站的首頁(yè)(http://localhost:8080)。2.用戶登錄,如圖5.2所示:用戶進(jìn)入登錄/注冊(cè)頁(yè)面(http://localhost:8080/login),通過router.POST("/user",CreateUser)來接收前端Axios發(fā)送的POST請(qǐng)求,CreateUser函數(shù)作為控制器處理用戶的登錄請(qǐng)求,成功后跳轉(zhuǎn)回首頁(yè)(http://localhost:8080)。切換賬號(hào),如圖5.3所示:圖5.3切換賬戶/退出 登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊頭像選擇【切換賬號(hào)】,通過清除sessionStorage的內(nèi)容來清除用戶登錄的所有信息,以此限制未登錄用戶的進(jìn)一步操作,做出權(quán)限控制,然后通過Vue.js的router-link跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面(http://localhost:8080/login)進(jìn)行賬號(hào)切換。退出賬戶,如圖5.3所示:登錄用戶在主頁(yè)登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊頭像選擇【退出】,通過清除sessionStorage的內(nèi)容來清除用戶登錄的所有信息,以此限制未登錄用戶的進(jìn)一步操作,做出權(quán)限控制控制。使用this.$router.go(0)來強(qiáng)制刷新路由,以此來更新頁(yè)面顯示。5.4.2流媒體視頻點(diǎn)播模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊功能是為游客和用戶提供視頻點(diǎn)播功能。包括視頻列表展示、視頻點(diǎn)播兩部分組成。視頻展示列表,如圖5.4所示:圖5.4視頻展示列表 游客和登錄用戶在主頁(yè)(http://localhost:8080)可以看到所有的視頻展示。前端通過API(http://localhost:8000/allvideos)請(qǐng)求后端服務(wù)器之后,以JSON格式得到返回的視頻數(shù)據(jù)以及視頻的詳細(xì)信息。最后在前端渲染處理得到的數(shù)據(jù)并在頁(yè)面展示。視頻點(diǎn)播,如圖5.5所示:圖5.5視頻點(diǎn)播 游客和登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊其中視頻跳轉(zhuǎn)至(http://localhost:8080/watch)相關(guān)播放頁(yè)面,前端通過API(http://localhost:8000)向后端發(fā)送請(qǐng)求,獲取流媒體的資源以此來在前端頁(yè)面展示。5.4.3視頻管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊為用戶提供了視頻管理的相關(guān)功能。包括視頻封面展示、視頻播放量統(tǒng)計(jì)、視頻評(píng)論數(shù)統(tǒng)計(jì)、視頻上傳和視頻刪除功能。視頻上傳,如圖5.6、圖5.7所示:圖5.6視頻上傳圖5.7視頻信息填寫 已登錄用戶在個(gè)人管理頁(yè)面(http://localhost:8080/channel)點(diǎn)擊右上角【創(chuàng)建】按鈕,彈出如圖5.6所示對(duì)話框。將所需要上傳的視頻拖進(jìn)對(duì)話框中,通過router.POST("/upload/:vid-id",uploadHandler)來接受前端Axios發(fā)送的請(qǐng)求,uploadHandler函數(shù)作為控制器處理視頻上傳的請(qǐng)求。隨后跳轉(zhuǎn)至視頻信息填寫對(duì)話框,如圖5.7所示,填寫視頻信息點(diǎn)擊上傳封面,通過router.POST("/uploadimg/:img-name",uploadImgHandler)來接受前端Axios發(fā)送的請(qǐng)求,uploadImgHandler函數(shù)作為控制器處理視頻封面上傳的請(qǐng)求。點(diǎn)擊【確定】按鈕,,通過router.POST("/user/:username/videos",AddNewVideo)來接受前端Axios發(fā)送的請(qǐng)求,AddNewVideo作為控制器處理視頻信息添加。視頻播放量統(tǒng)計(jì),如圖5.8所示:圖5.8 已登錄用戶在視頻管理頁(yè)面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻播放量信息。后端通過router.GET("/user/:username/listviews",ListVideoViewNums)接收前端Axios發(fā)送的GET請(qǐng)求,ListVideoViewNums函數(shù)作為控制器處理獲取視頻播放量,并通過JSON格式返回?cái)?shù)據(jù),之后前端渲染將視頻播放量信息與每個(gè)視頻匹配展示。每點(diǎn)擊一次視頻,會(huì)向后端發(fā)送一次API請(qǐng)求(http://localhost:8080/channel),通過router.POST("/videos/:vid-id/views",AddVideoViewNum)接收請(qǐng)求,AddVideoViewNum函數(shù)作為控制器增加相應(yīng)視頻的信息。視頻評(píng)論數(shù)統(tǒng)計(jì):已登錄用戶在視頻管理頁(yè)面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻評(píng)論數(shù)。后端通過router.GET("/listcommentnums",ShowCommentNums)接收前端Axios發(fā)送的GET請(qǐng)求,ShowCommentNums函數(shù)作為控制器處理獲取流媒體視頻的評(píng)論數(shù),并通過JSON格式返回給前端,前端得到數(shù)據(jù)后渲染將評(píng)論數(shù)與每個(gè)視頻做匹配后展示。5.4.4用戶評(píng)論模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊為已登錄的用戶提供與評(píng)論相關(guān)的功能。包括評(píng)論發(fā)表、評(píng)論查看功能。如圖5.9所示:圖5.9評(píng)論發(fā)表已登錄用戶在相關(guān)流媒體視頻播放頁(yè)面(http://localhost:8080/watch),在視頻信息下方的評(píng)論框,輸入評(píng)論后,點(diǎn)擊底部【評(píng)論】按鈕。通過router.POST("/videos/:vid-id/comments",PostComment)接收前端Axios發(fā)送的POST請(qǐng)求,PostComment函數(shù)作為控制器處理用戶請(qǐng)求,將用戶評(píng)論插入數(shù)據(jù)庫(kù)。5.4.5流控模塊的設(shè)計(jì)與實(shí)現(xiàn) 流控模塊為防止用戶或黑客惡意訪問系統(tǒng)從而占用帶寬和系統(tǒng)內(nèi)存,提供流量控制。如圖5.10所示:圖5.10流控模塊 使用令桶牌算法,每當(dāng)有一個(gè)用戶連接進(jìn)來,就從桶里面取出一塊令牌,直到用戶完成操作,斷開連接之后,系統(tǒng)再將令牌放回桶里。若桶里的令牌全部取出,后端將禁止用戶獲取連接,有效的做出流量限制,防止用戶惡意訪問系統(tǒng),從而占用帶寬和系統(tǒng)內(nèi)存。6系統(tǒng)測(cè)試6.1軟件測(cè)試簡(jiǎn)介軟件測(cè)試是由“驗(yàn)證”和“有效性確認(rèn)”活動(dòng)所構(gòu)成的整體?!膀?yàn)證”是檢驗(yàn)軟件是否已正確實(shí)現(xiàn)系統(tǒng)的功能和特性;“有效性確認(rèn)”是確認(rèn)所開發(fā)的軟件是否滿足用戶真正需求的活動(dòng)。軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵步驟。軟件總存在缺陷。只有通過測(cè)試,才可以發(fā)現(xiàn)軟件缺陷;也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產(chǎn)品或軟件系統(tǒng)中清理出去;軟件中存在的缺陷帶來的損失是巨大的,這也說明了軟件測(cè)試的必要性和重要性。按時(shí)間、階段進(jìn)行可進(jìn)行以下劃分:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。6.2測(cè)試需求軟件測(cè)試的需求指的是在軟件開發(fā)的項(xiàng)目中所要測(cè)試的內(nèi)容。軟件的測(cè)試需求是詳細(xì)的、清晰的。測(cè)試的需求若詳細(xì),且精準(zhǔn),這樣的話就會(huì)對(duì)所要被測(cè)試的軟件的了解就愈發(fā)深刻,工作的內(nèi)容就更加的清晰,保證軟件測(cè)試的質(zhì)量和軟件測(cè)試的進(jìn)度就更加的有效果,這樣可以規(guī)避在軟件測(cè)試的過程中的各種各樣的疏漏。簡(jiǎn)而言之,這是一個(gè)測(cè)試的范圍。 本人給每一個(gè)測(cè)試需求以VS-001開始編號(hào),以此類推。 測(cè)試需求的優(yōu)先級(jí)分為高、中、低三類:優(yōu)先級(jí)為高,說明是關(guān)鍵的任務(wù)需求,必須實(shí)現(xiàn),否則表明項(xiàng)目失??;優(yōu)先級(jí)為中,表明最終版本要求;如若任務(wù)緊急,可在下一個(gè)版本中實(shí)現(xiàn);優(yōu)先級(jí)低,指的是在功能上的加強(qiáng),該功能的實(shí)現(xiàn)將促使本產(chǎn)品更完善。 測(cè)試需求如表6.1所示。表6.1測(cè)試需求表需求編號(hào)需求簡(jiǎn)述優(yōu)先級(jí)備注說明VS-001用戶注冊(cè)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-002用戶登錄測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-003鏈接測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-004流媒體列表展示測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-005流媒體點(diǎn)播測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-006流媒體上傳測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-007流媒體刪除測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-008播放量統(tǒng)計(jì)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-009評(píng)論數(shù)統(tǒng)計(jì)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-010用戶發(fā)表評(píng)論測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-011查看評(píng)論列表測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)6.3測(cè)試用例軟件測(cè)試的用例是對(duì)特定軟件產(chǎn)品測(cè)試任務(wù)的描述,反映了測(cè)試方案、方法、技術(shù)和策略。它的內(nèi)容包括軟件測(cè)試目標(biāo)和軟件測(cè)試環(huán)境、軟件測(cè)試的輸入數(shù)據(jù)以及軟件測(cè)試步驟,接著是軟件測(cè)試的預(yù)期結(jié)果和軟件測(cè)試的腳本等等,最后是表單和文檔。用通俗的話來描述,軟件的測(cè)試用例是為特定目標(biāo)準(zhǔn)備的一組測(cè)試輸入、執(zhí)行條件和預(yù)期結(jié)果,以驗(yàn)證是否滿足特定的軟件需求。撰寫的測(cè)試用例如下(選擇性舉例)。表6.2用戶登錄測(cè)試用例測(cè)試用例編號(hào)VS-001-1測(cè)試標(biāo)題用戶登錄優(yōu)先級(jí)高前置條件無輸入賬戶:dcxx密碼:000操作步驟在網(wǎng)站主頁(yè)點(diǎn)擊右上角【登錄】跳轉(zhuǎn)至登錄頁(yè)面,輸入賬戶密碼,點(diǎn)擊【登錄】預(yù)期結(jié)果登陸成功,跳轉(zhuǎn)至主頁(yè)表6.3用戶注冊(cè)測(cè)試用例測(cè)試用例編號(hào)VS-002-2測(cè)試標(biāo)題用戶注冊(cè)優(yōu)先級(jí)高前置條件無輸入賬戶:dcxx密碼:000操作步驟在網(wǎng)站主頁(yè)點(diǎn)擊右上角【登錄】跳轉(zhuǎn)至登錄頁(yè)面,輸入賬戶密碼,點(diǎn)擊【注冊(cè)】。預(yù)期結(jié)果注冊(cè)成功,跳轉(zhuǎn)至主頁(yè)。表6.4流媒體列表展示測(cè)試用例測(cè)試用例編號(hào)VS-004-3測(cè)試標(biāo)題流媒體列表展示優(yōu)先級(jí)高前置條件無輸入無操作步驟輸入本流媒體視頻點(diǎn)播網(wǎng)站的網(wǎng)址。預(yù)期結(jié)果主頁(yè)展示所有已上傳的流媒體視頻。表6.5流媒體上傳測(cè)試用例測(cè)試用例編號(hào)VS-006-4測(cè)試標(biāo)題流媒體視頻上傳優(yōu)先級(jí)高前置條件用戶已登錄輸入視頻文件,標(biāo)題,說明,封面操作步驟進(jìn)入視頻管理頁(yè)面,右上角點(diǎn)擊【創(chuàng)建】,將視頻文件拖入彈窗,點(diǎn)擊【下一步】,填寫將要上傳的視頻標(biāo)題、說明,再選擇視頻封面,點(diǎn)擊【確定】預(yù)期結(jié)果視頻上傳成功表6.6用戶發(fā)表評(píng)論測(cè)試用例測(cè)試用例編號(hào)VS-010-5測(cè)試標(biāo)題用戶發(fā)表評(píng)論優(yōu)先級(jí)高前置條件用戶已登錄輸入輸入評(píng)論操作步驟進(jìn)入流媒體視頻點(diǎn)播頁(yè)面,在視頻下方輸入將要發(fā)表的評(píng)論,點(diǎn)擊【評(píng)論】按鈕。預(yù)期結(jié)果評(píng)論發(fā)表成功表6.7查看評(píng)論列表測(cè)試用例測(cè)試用例編號(hào)VS-011-6測(cè)試標(biāo)題查看評(píng)論列表優(yōu)先級(jí)高前置條件無輸入無操作步驟進(jìn)入流媒體視頻點(diǎn)播頁(yè)面,在視頻發(fā)表評(píng)論下面查看對(duì)于該視頻的評(píng)論。預(yù)期結(jié)果查看列表成功6.4單元測(cè)試軟件的單元測(cè)試是旨在對(duì)軟件中的最小的可以測(cè)試單元進(jìn)行檢驗(yàn)。對(duì)于單元測(cè)試中單元的含義,用稍微通俗的話來描述,是要對(duì)真實(shí)情況去辨別具體的內(nèi)容??偟膩碚f,單元就是人為規(guī)定的最小的被測(cè)功能模塊。單元測(cè)試是在軟件開發(fā)過程中要進(jìn)行最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元是要處于與程序的其他部分互不干涉的情況下所測(cè)試的。(1)用戶的注冊(cè)測(cè)試若用戶沒有本流媒體視頻網(wǎng)站的賬戶,在賬戶輸入框中輸入所要注冊(cè)的賬戶明,在密碼輸入框中輸入密碼,點(diǎn)擊【注冊(cè)】(2)用戶登錄測(cè)試若用戶已擁有本流媒體視頻網(wǎng)站的賬戶,在賬戶輸入框中輸入所要注冊(cè)的賬戶明,在密碼輸入框中輸入密碼,點(diǎn)擊【登錄】(3)流媒體列表展示測(cè)試用戶或游客在瀏覽器地址欄輸入本流媒體視頻網(wǎng)站地址,跳轉(zhuǎn)至本網(wǎng)站。本網(wǎng)站將視頻封面、視頻標(biāo)題、視頻作者等展示出來。
(4)流媒體視頻上傳測(cè)試用戶登錄成功本流媒體視頻網(wǎng)站后,點(diǎn)擊本流媒體視頻網(wǎng)站右上方進(jìn)入視頻管理頁(yè)面,在視頻管理頁(yè)面點(diǎn)擊【創(chuàng)建】按鈕,選擇所要上傳的視頻,點(diǎn)擊【下一步】,填寫所要上傳視頻的基本信息,點(diǎn)擊【上傳封面】按鈕選擇所要上傳視頻的封面,最后點(diǎn)擊【確定】按鈕,完成視頻上傳。(5)用戶發(fā)表評(píng)論測(cè)試用戶成功登錄本流媒體視頻網(wǎng)站后,點(diǎn)擊主頁(yè)任意視頻,進(jìn)入視頻點(diǎn)播頁(yè)面,將頁(yè)面拖至視頻下方,在評(píng)論輸入框輸入評(píng)論,點(diǎn)擊【評(píng)論】按鈕發(fā)表評(píng)論。(6)查看用戶評(píng)論測(cè)試用戶或游客點(diǎn)擊主頁(yè)任意視頻,進(jìn)入視頻點(diǎn)播頁(yè)面,將頁(yè)面拖至視頻下方,可以查看該視頻下所有用戶對(duì)該視頻的評(píng)論。6.5集成測(cè)試軟件的集成測(cè)試是指單元測(cè)試的邏輯擴(kuò)展。它將兩個(gè)最簡(jiǎn)單的測(cè)試單元組合進(jìn)一個(gè)組件中,并測(cè)試它們之間的接口。在這個(gè)意義上,組件指的是多個(gè)單元的集成和聚合。在實(shí)際的方案中,許多單元被組合成組件,而這些組件又被聚合成程序中更大的一部分。該方法是對(duì)片段的組合進(jìn)行測(cè)試,最后將其擴(kuò)展為一個(gè)流程,并與其他組的模塊一起對(duì)模塊進(jìn)行測(cè)試。最后,對(duì)構(gòu)成流程的所有模塊一起進(jìn)行測(cè)試。我將組合所有的功能模塊,再次測(cè)試每個(gè)模塊的子功能。測(cè)試后,我發(fā)現(xiàn)每個(gè)單元之間沒有沖突或接口問題,并完成了集成測(cè)試。6.6系統(tǒng)測(cè)試系統(tǒng)測(cè)試。這是對(duì)本流媒體視頻點(diǎn)播網(wǎng)站系統(tǒng)的測(cè)試。因此將硬件、軟件和操作人員三類作為一個(gè)個(gè)體來檢驗(yàn)是否不符合系統(tǒng)規(guī)范。軟件系統(tǒng)的測(cè)試可以發(fā)現(xiàn)系統(tǒng)的分析和設(shè)計(jì)中的各類不正確的地方。比如說安全測(cè)試是測(cè)試軟件的安全措施是否真的可靠,以及系統(tǒng)是否可以免受非法入侵。另一個(gè)例子,壓力測(cè)試是測(cè)試系統(tǒng)在正常的數(shù)據(jù)量和過載下能否可以正常的工作,例如多個(gè)用戶同時(shí)訪問。(1)安全測(cè)試當(dāng)系統(tǒng)管理員或用戶訪問時(shí),系統(tǒng)是加密的,通常無法連接錯(cuò)誤的密碼來工作。(2)壓力和性能測(cè)試通過以相當(dāng)快的頻率單擊系統(tǒng)的每個(gè)功能或記錄大量數(shù)據(jù),可以發(fā)現(xiàn)系統(tǒng)能夠更好地承受壓力并穩(wěn)定地工作。6.7驗(yàn)收測(cè)試軟件的驗(yàn)收和和軟件的檢查測(cè)試是軟件部署前的最后的一次測(cè)試行為。本軟件產(chǎn)品流媒體視頻點(diǎn)播系統(tǒng)的單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試后,軟件產(chǎn)品發(fā)布前的測(cè)試活動(dòng)。這是技術(shù)測(cè)試的最后階段,也稱為交付測(cè)試。驗(yàn)收和檢查測(cè)試的目的是確保軟件已經(jīng)準(zhǔn)備好,最終用戶可以使用它來執(zhí)行軟件的既定功能和任務(wù)。(1)測(cè)試alpha在系統(tǒng)完成后,我用不同類型的模擬用戶對(duì)系統(tǒng)進(jìn)行了測(cè)試,發(fā)現(xiàn)了一些非常嚴(yán)重的軟件缺陷,并試圖修復(fù)系統(tǒng)的缺陷。(2)beta測(cè)試通過alpha測(cè)試后,我邀請(qǐng)同學(xué)們測(cè)試beta系統(tǒng),并提出了一些異常和建議。結(jié)論此次畢業(yè)設(shè)計(jì)讓我受益匪淺,一次完整的軟件開發(fā)讓我更了解件項(xiàng)目的開發(fā)流程以及合理地運(yùn)用編程技術(shù)實(shí)現(xiàn)系統(tǒng)的開發(fā),也讓自己了解到自己的許多不足之處。 在畢業(yè)設(shè)計(jì)選題前,我有對(duì)市場(chǎng)流媒體視頻網(wǎng)站做過一定的調(diào)查,隨著經(jīng)濟(jì)發(fā)展,人們生活提高,對(duì)精神娛樂的需求愈發(fā)強(qiáng)烈,因此誕生了騰訊視頻、Bilibili、愛奇藝等流媒體視頻點(diǎn)播網(wǎng)站,其次流媒體視頻對(duì)高并發(fā)、高性能有迫切的需求,因此在這種情況下,我選擇了Golang作為基石開發(fā)流媒體視頻點(diǎn)播網(wǎng)站。 此次在設(shè)計(jì)本流媒體視頻時(shí),后端我選擇了Golang作為編程語言,后端路由選擇了一款優(yōu)秀的開源項(xiàng)目httprouter,以此作為MVC框架中的Model和Controller,前端選擇了時(shí)下流行的Vue.JS框架作為View層,以此完成前后端分離架構(gòu)的搭建,并通過Axios完成前后端的數(shù)據(jù)交換。 在此次畢業(yè)設(shè)計(jì)的軟件開發(fā)中,遇到了各種各樣的問題,也因?yàn)榻鉀Q這些問題,熬過不知多少的日日夜夜。為得出解決方案絞盡腦汁,通過百度和谷歌搜索相應(yīng)資料,站在巨人的肩膀上解決問題。通過此次畢業(yè)設(shè)計(jì),我清晰的認(rèn)識(shí)到自身的許多不足之處,更對(duì)軟件開發(fā)這個(gè)領(lǐng)域的發(fā)展充滿了自信,也因此更加喜歡這一行業(yè)。 在本流媒體視頻網(wǎng)站中,仍然存在許多不足支持,例如網(wǎng)頁(yè)設(shè)計(jì)的美觀程度,可以拓展更多功能以此提高用戶體驗(yàn)。這一完整的軟件開發(fā)過程對(duì)我來說是能力提高的過程,更是將大學(xué)四年所學(xué)到的理論知識(shí)實(shí)踐化的一個(gè)過程。我將會(huì)從中汲取更多經(jīng)驗(yàn),以此來提高自身為日后開發(fā)其他軟件打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn)[1]AlanA.A.Donnvan,BrainW.KernighanGo程序設(shè)計(jì)語言[M].機(jī)械工業(yè)出版社[2]崔洋,賀亞MySQL數(shù)據(jù)庫(kù)應(yīng)用從入門到精通[M].[3]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].2版.北京:機(jī)械工業(yè)出版社,2016[4]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].機(jī)械工業(yè)出版社[5]劉遄Linux就該這么學(xué)[M].人民郵電出版社[6]劉薇.關(guān)于軟件工程之中的結(jié)構(gòu)化設(shè)計(jì)方法探究.計(jì)算機(jī)光盤軟件與應(yīng)用[M].,2013,16(01):242+264.[7]ErichGamma,RichardHlm,RalphJohnson,JohnVlissides設(shè)計(jì)模式機(jī)械工業(yè)出版社[8]Kevin.Fall,W.RichardStevensTCP/IP詳解卷1:協(xié)議[M].機(jī)械工業(yè)出版社[9]嚴(yán)蔚敏,李冬梅數(shù)據(jù)結(jié)構(gòu)[M].人民郵電出版社[10]JoachimGoll.軟件架構(gòu)與設(shè)計(jì)模式[M].清華大學(xué)出版社
謝辭 經(jīng)過幾個(gè)月的努力,畢業(yè)論文即將完成?;仡櫘厴I(yè)設(shè)計(jì)的開發(fā)過程,那一行又一行的代碼,都是思想的火花。我想借此機(jī)會(huì)向過去四年來幫助我的人表示深切的感謝。感謝我的父母,可愛的父親,可敬的母親,你們的愛是我最大的財(cái)富,與我一起走過四年的學(xué)習(xí)之路。在畢業(yè)設(shè)計(jì)期間,我深受導(dǎo)師認(rèn)真負(fù)責(zé)的工作態(tài)度和嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格的啟發(fā)。今后,無論怎樣做人做事,我都要保持積極向上的進(jìn)取心,樂觀向上的態(tài)度,永不放棄。同時(shí),同學(xué)們的相互討論,不僅增進(jìn)了友誼和理解,也讓我受益匪淺。再次向所有在我的設(shè)計(jì)過程中給予我?guī)椭完P(guān)心的朋友表示深深的感謝!感謝老師的指導(dǎo),正是您的指導(dǎo),讓我高質(zhì)量地完成了畢業(yè)設(shè)計(jì)。我要感謝北京理工大學(xué)珠海學(xué)院全體教師的諄諄教誨。正是你們兢兢業(yè)業(yè)的工作,讓我如此成功地完成了大學(xué)學(xué)業(yè),開啟了人生的新篇章。再次感謝我的朋友們給了我很多關(guān)于論文的啟發(fā)和建議,給了我很大的信心。最后,祝大家事業(yè)有成!祝北京工業(yè)大學(xué)珠海學(xué)院的明天更加美好!
PowerPoint課件制作實(shí)用技巧PowerPoint是微軟公司生產(chǎn)的制作幻燈片和簡(jiǎn)報(bào)的軟件(以下簡(jiǎn)稱PPT)。在我們?cè)S多人看來,它只不過是一個(gè)簡(jiǎn)單地對(duì)文字、圖形、圖片進(jìn)行演示的軟件,教學(xué)中的課件制作軟件當(dāng)屬Authorware、Flash。Authorware和Flash制作的動(dòng)畫效果的確很好,而且它們的功能也很強(qiáng)大。不過這些軟件在制作課件的過程中往往非常耗時(shí),用這些專業(yè)軟件來制作課件用于平時(shí)的教學(xué)往往效率很低。PPT就是一個(gè)非常簡(jiǎn)單、實(shí)用的制作課件的軟件,只要你用好它,同樣能做非常棒的課件來。一、掌握基本,知道“插入”。(一)知道從“插入”菜單進(jìn)入,會(huì)給PPT課件添加文字、圖片、影片和聲音等,也就會(huì)做一般的課件了。(二)圖片插入與處理1.插入圖片具體方法:a)插入剪貼畫或文件中的圖片;b)添加圖片做背景;c)給自選圖形做填充。2.處理圖片具體方法:我們用PPT制作課件時(shí),經(jīng)常從網(wǎng)上下載圖片來用,而網(wǎng)絡(luò)中的圖片往往含有超鏈接和網(wǎng)站名稱痕跡,我們需要?jiǎng)h除其中超鏈接,并對(duì)圖片進(jìn)行裁剪處理。在Powerpoint中,我們一般可以利用“圖片”工具欄上的“裁剪”工具進(jìn)行裁剪處理,但是,這里的工具只能對(duì)圖片進(jìn)行矩形裁剪,若想裁剪成圓形、多邊形等其他形狀,通常方法就無能為力了。其實(shí)這個(gè)問題在PPT中是可以解決的。我們用給自選圖形做填充圖片的方法就可以實(shí)現(xiàn)我們需要的效果。具體步驟:a)首先利用“繪圖”工具欄畫一個(gè)想要裁剪的圖形,如橢圓。b)選中橢圓后單擊“繪圖”工具欄上“填充顏色”按鈕右側(cè)黑三角,從列表菜單中單擊“填充效果”命令。c)打開選擇“圖片”選項(xiàng)卡,單擊〔選擇圖片〕按鈕,從“選擇圖片”對(duì)話框中找到合適的圖片,單擊〔插入〕按鈕后返回到“填充效果”對(duì)話框最后單擊〔確定〕按鈕后退出。此圖片當(dāng)作橢圓圖形的背景出現(xiàn),改變了原來的矩形形狀,獲得了滿意的裁剪圖片效果。圖片在插入PPT之前,我們可以用ACDSEE軟件進(jìn)行加工,如改變大小,裁剪等操作。二、學(xué)會(huì)下載,查找方法。在制作課件過程中,我們時(shí)常需要從網(wǎng)絡(luò)上下載各種資源用以豐富課件內(nèi)容,提升課堂效果。但有許多網(wǎng)站的flash動(dòng)畫都不提供下載;還有網(wǎng)站為我們提供了許多視頻素材,這些視頻素材都是FLV流媒體格式。FLV流媒體格式是一種新的視頻格式,全稱為FlashVideo。由于它形成的文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻文件成為可能,它的出現(xiàn)也有效地解決了視頻文件導(dǎo)入Flash后,使導(dǎo)出的SWF文件體積龐大,不能在網(wǎng)絡(luò)上很好的使用等缺點(diǎn)。目前各在線視頻網(wǎng)站均采用此視頻格式。如新浪播客、56、優(yōu)酷、土豆、酷6等,無一例外。FLV已經(jīng)成為當(dāng)前視頻文件的主流格式。這些網(wǎng)站一般都不提供下載。我們想要這些素材,怎樣辦?1.尋找下載方法:a)在百度網(wǎng)站搜索欄中輸入下載的內(nèi)容,搜索下載方法。b)弄清格式,再搜索方法。2.具體方法推薦①flasah動(dòng)畫的下載方法一:IE緩存中尋找在網(wǎng)上看過一個(gè)flash后,一般情況下都會(huì)保存在IE緩存里。右擊桌面上的IE圖標(biāo),選“屬性”命令,單擊中間的“設(shè)置”按鈕,彈出“Internet臨時(shí)文件和歷史記錄設(shè)置”面板,單擊“查看文件”,可以打開臨時(shí)文件夾,按時(shí)間排序,找到剛才打開的flash動(dòng)畫文件。優(yōu)點(diǎn):不需要安裝其它軟件。缺點(diǎn):操作相對(duì)煩瑣。方法二:借助Flashsaver等軟件下載,這些軟件都可以快速、方便的下載你所需要的flash文件。優(yōu)點(diǎn):簡(jiǎn)單、方便、快速。缺點(diǎn):需要安裝使用。②FLV視頻的獲取方法一:IE緩存中尋找,方法同flasah。方法二:flv視頻解析下載/三、學(xué)用控件,轉(zhuǎn)化應(yīng)用1.flash動(dòng)畫的插入方法一:安裝flash插件,再插入flash。步驟:a)安裝“ppt插flash軟件”插件;b)單擊“插入”→“flashmovie”→打開要播放的flash文件→確定。方法二:利用控件插入flash動(dòng)畫。步驟:a)插入“ShockwaveFlashObject”控件對(duì)象:右擊“工具欄”→選“控件工具箱”(或點(diǎn)“視圖→工具欄→控件工具箱”);點(diǎn)“其他控件”(控件工具箱中最后一個(gè)形似錘子斧頭的按鈕),拖動(dòng)滾動(dòng)條或在英文輸入法狀態(tài)下按鍵盤上“s”鍵,快速定位到以s開頭的控件,選擇“ShockwaveFlashObject”控件。將鼠標(biāo)移到幻燈片工作區(qū),鼠標(biāo)指針變成“十”字型,拖動(dòng)鼠標(biāo)繪制出一個(gè)形似信封的矩形。b)打開控件對(duì)象“屬性”對(duì)話框:右擊矩形控件對(duì)象,在彈出的快捷菜單中選“屬性”命令。c)正確設(shè)置控件對(duì)象屬性:主要是在“Movie”空白文本域中正確輸入演示文稿要播放的.swf動(dòng)畫的完整名稱。d)將控件對(duì)象適當(dāng)縮放:為了獲得比較好的播放效果,拖動(dòng)控件對(duì)象的縮放點(diǎn)使它幾乎覆蓋整個(gè)幻燈片工作區(qū),但要在幻燈片工作區(qū)底部保留少許空白區(qū)域。這樣既可以享受.swf動(dòng)畫大屏幕播放的好處,又能夠保證幻燈片能夠順利地切換。e)一般情況下,幻燈片應(yīng)顯示出動(dòng)畫的第一幀圖形。如果控件對(duì)象仍是空白的,可保存演示文稿,關(guān)閉后再打開它,按F5放映幻燈片,應(yīng)該能夠正確播放動(dòng)畫。2.FLV視頻的插入FLV視頻與FLASH不一樣的。全稱是flashvideo,所用的播放器也不一樣。①利用控件插入PPT的方法也是有區(qū)別的。不同點(diǎn):先要下載pptflv.swf文件,此文件是類似于網(wǎng)頁(yè)中FLV視頻播放器的一個(gè)Flash文件(可用百度搜索下載下來后記著要改文件名,保留擴(kuò)展名);例如改成:pptflv1.swf“Movie”參數(shù)值填入方法不一樣,參數(shù)值示例:pptflv.swf?file=視頻.FLV“pptflv.swf”即為步驟一下載下來的Flash文件的完整文件,“視頻.FLV”即為需要播放的FLV視頻的文件名,大家只要將pptflv.swf換成自己下載后起的文件名,將“視頻.FLV”換成自己的FLV視頻文件名,則此FLV文件就可以在PowerPoint中播放了。如播放2.flv視頻參數(shù)填法:示例:pptflv1.swf?file=2.FLV②方法二:將flv轉(zhuǎn)換成swf再插入轉(zhuǎn)換軟件:UltraFlashVideoFLVConverter3.2.0軟件說明:該軟件又叫全格式FLV轉(zhuǎn)換器,支持將幾乎所有主流視頻格式轉(zhuǎn)換為FLV或者SWF且對(duì)用戶較為關(guān)心的RealMedia(RM/RMVB...)和QuickTime(MOV/QT...)支持良好。三大特色功能:既可輸出FLV格式,也可輸出SWF格式,甚至同時(shí)輸出FLV+SWF格式。此軟件也支持創(chuàng)建調(diào)用播放的網(wǎng)頁(yè)支持導(dǎo)入所有的主流字幕格式。srt,*.sub,*.idx,*.ssa,*.ass,*.psb,*.smi)有字幕合成功能,你現(xiàn)在無需再使用那些繁瑣的專業(yè)軟件來合成字幕到視頻中去,字幕合成與格式轉(zhuǎn)換一氣呵成!支持視頻分割,右鍵點(diǎn)擊列表中的源文件,選擇[編輯視頻],自己設(shè)置下起點(diǎn)終點(diǎn)即可對(duì)視頻進(jìn)行去粗取精處理?、鄯椒ㄈ簩lv轉(zhuǎn)換成其他格式視頻文件再插入工具:FLV轉(zhuǎn)AVI(FreeFLVtoAVIConverter1.5)作用:一個(gè)免費(fèi)的將FLV轉(zhuǎn)換成AVI的軟件,簡(jiǎn)單好用,自帶解碼器。四、學(xué)做交互,理解運(yùn)用。1.利用母版進(jìn)行交互母版≠模版母版和模版可以使課件統(tǒng)一整體風(fēng)格,展現(xiàn)自己的個(gè)性和特點(diǎn);模版是對(duì)同一類課件所做的整體風(fēng)格統(tǒng)一設(shè)置,母版則是對(duì)某一部課件內(nèi)部所做的個(gè)性化統(tǒng)一設(shè)置。母版設(shè)置得好,就可以存為模版,供別人在制作同類題材時(shí)使用。修改幻燈片母板的方法和技巧。如果我們希望為每一張幻燈片添加上一項(xiàng)固定的內(nèi)容,并做超鏈接,可以通過修改“母板”來實(shí)現(xiàn)。a)執(zhí)行“視圖→母板→幻燈片母板”命令,進(jìn)入“幻燈片母板”編輯狀態(tài)。b)插入固定內(nèi)容。例如:將圖片插入到幻燈片中,調(diào)整好大小、定位到合適的位置上。c)給這張圖片插入超鏈接,就可以進(jìn)行交互了。d)單擊“關(guān)閉母板視圖”按鈕退出“幻燈片母板”編輯狀態(tài)。以后添加幻燈片時(shí),該幻燈片上自動(dòng)添加上該圖片。如果說一個(gè)PPT有它的靈魂的話,那就是PPT的母板,它的作用猶如摩天大廈的根基一般。2.在PPT演示文稿中插入PowerPoint演示文稿對(duì)象實(shí)現(xiàn)交互具體效果:①導(dǎo)航目錄內(nèi)容展示效果②單擊小圖片就可看到該圖片的放大圖自動(dòng)縮效果《畫家鄉(xiāng)》一課五個(gè)畫面交互的具體操作方法:a)單擊“插入→對(duì)象”,在出現(xiàn)的選擇頁(yè)中選擇“MicrosoftPowerPoint演示文稿”,單擊確定。此時(shí)就會(huì)在當(dāng)前幻燈片中插入一個(gè)“PowerPoint演示文稿”的編輯區(qū)域。b)在此編輯區(qū)域中我們就可以對(duì)插入的演示文稿對(duì)象進(jìn)行編輯了,編輯方法與PowerPoint演示文稿的編輯方法一樣。c)在插入的演示文稿對(duì)象中創(chuàng)建所需的幻燈片??蓪D片設(shè)置為幻燈片相同大小,退出編輯后,就可發(fā)現(xiàn)圖片以縮小方式顯示了(其實(shí)是整個(gè)插入的演示文稿對(duì)象被縮小顯示了)。d)最后,我們只需對(duì)剩余的圖片進(jìn)行插入。為了提高效率,可將這個(gè)插入的演示文稿對(duì)象進(jìn)行復(fù)制,并按照上面的方法對(duì)圖片進(jìn)行替換即可。e)完畢后,單擊“觀看放映”命令進(jìn)行演示,單擊小圖片馬上會(huì)放大,再單擊放大的圖片馬上又返回到了瀏覽小圖片的幻燈片中了。原理:這里的小圖片實(shí)際上是插入的演示文稿對(duì)象,它們的“動(dòng)作設(shè)置”屬性中的“單擊鼠標(biāo)”中的“對(duì)象動(dòng)作”被設(shè)為了“演示”(這是默認(rèn)值)。因此我們?cè)谘菔緯r(shí),單擊小圖片,就是等于對(duì)插入的演示文稿對(duì)象進(jìn)行“演示觀看”。而演示文稿對(duì)象在播放時(shí)就會(huì)自動(dòng)全屏幕顯示。所以我們看到的圖片就好像被放大了一樣,而我們單擊放大圖片時(shí),插入的演示文稿對(duì)象實(shí)際上已被播放完了(因?yàn)橹挥幸粡垼?,它就?huì)自動(dòng)退出,所以就回到了主幻燈片中了。3.用觸發(fā)器控制自定義動(dòng)畫進(jìn)行交互以前我們?cè)谑褂肞owerPoint制作課件時(shí),常常發(fā)現(xiàn)制作人機(jī)交互性的課件非常麻煩。其實(shí)在PowerPoint2003里,用觸發(fā)器控制自定義動(dòng)畫可以輕松地制作出交互性很強(qiáng)的課件。觸發(fā)器功能可以將畫面中的任一對(duì)象設(shè)置為觸發(fā)器,單擊它,該觸發(fā)器下的所有對(duì)象就能根據(jù)預(yù)先設(shè)定的動(dòng)畫效果開始運(yùn)動(dòng),并且設(shè)定好的觸發(fā)器可以多次重復(fù)使用。類似于Authorware、Flash等軟件中的熱對(duì)象、按鈕、熱文字等,單擊后會(huì)引發(fā)一個(gè)或者的一系列動(dòng)作。例1:?jiǎn)螕簟袄馀_(tái)”后,“小球”開始按一定路徑運(yùn)動(dòng)。例2:分別單擊“變色一”和“變色二”,讓“笑臉”顏色。例3:?jiǎn)螕粝旅嬉欢卧挼年P(guān)鍵詞,讓詞語變紅色讀下面一段話,說說從哪些詞語中可以看出侵略者采用了各種野蠻手段掠奪、毀滅圓明園的?他們把園內(nèi)凡是能拿走的東西,統(tǒng)統(tǒng)掠走,拿不動(dòng)的,就用大車或牲口搬運(yùn)。實(shí)在運(yùn)不走的,就任意破壞、毀掉。步驟:a)將原來段落中的重點(diǎn)詞消去;(將詞語顏色變成和背景色一樣)b)將重點(diǎn)詞作為單獨(dú)文本覆蓋到原來位置;c)設(shè)置重點(diǎn)詞自定義動(dòng)畫為“添加效果→強(qiáng)調(diào)→更改字體顏色→紅色”d)右擊重點(diǎn)詞自定義動(dòng)畫,選擇“效果選項(xiàng)”,選擇“計(jì)時(shí)”,選擇“觸發(fā)器”,選“單擊下列對(duì)象時(shí)啟動(dòng)效果”,再選重點(diǎn)詞,按確定。五、學(xué)會(huì)截取,合理選用。(一)視頻的截取加工1.工具:萬能轉(zhuǎn)換器(英文名TotalVideoConverter)作用:可以幫助你快速的分割,修整大的AVI、MPEG、ASF或者WMV文件為一個(gè)個(gè)小的視頻文件,內(nèi)置視頻播放器,你可以很方便的按照所選擇的播放時(shí)間進(jìn)行切割操作,不需要另外具備高深的技術(shù)知識(shí),簡(jiǎn)單容易使用!2.繪聲繪影會(huì)聲會(huì)影是一套操作最簡(jiǎn)單,功能最強(qiáng)悍的DV、HDV影片剪輯軟件。不僅完全符合家庭或個(gè)人所需的影片剪輯功能,甚至可以挑戰(zhàn)專業(yè)級(jí)的影片剪輯軟件。(二)flash的片段截取有時(shí)候,在網(wǎng)絡(luò)上下載了一個(gè)課件,對(duì)自己的課堂教學(xué)有幫助,但是又不想全部應(yīng)用這個(gè)課件,只想取出其中一部分,應(yīng)該則么辦呢?先用碩思閃客精靈將.swf文件和.exe文件轉(zhuǎn)換成fla文件,再用flash8打開進(jìn)行編輯,截取自己所需的片段,然后插入到ppt里面為我所用。1.碩思閃客精靈:它是一款用于瀏覽和解析Flash動(dòng)畫(.swf文件和.exe文件)的工具。最新版本有著強(qiáng)大的功能,可以將swf文件導(dǎo)出成FLA文件。它還能夠?qū)lash動(dòng)畫中的圖片、矢量圖、聲音、視頻(*.flv)、文字、按鈕、影片片段、幀等基本元素完全分解,最重要的是可以對(duì)動(dòng)作的腳本(Actionscript)進(jìn)行解析,清楚的顯示其動(dòng)作的代碼,讓對(duì)Flash動(dòng)畫的構(gòu)造一目了然。支持將SWF文件導(dǎo)出成FLA文件,幫助丟失FLA文件的影片作者重新獲得FLA文件,從而可以再編輯。完全兼容Flash8文件和動(dòng)作腳本(ActionScript)2.0。碩思閃客精靈支持將包含組件的SWF文件轉(zhuǎn)換成FLA格式,用戶可以在Flash中編輯這些組件。支持解析Flash影片中的視屏(video)文件,并將Flash影片中的視頻文件導(dǎo)出為*.flv格式。2.碩思閃客精靈具體使用方法:①解析Flash課件,提取課件素材在Flash課件作品中有大量的圖片、聲音和視頻等資源。由于制作者擁有的資源不同,在制作課件時(shí),很難及時(shí)、方便地尋找到適合的素材。如果可以從同類作品中將所需要的資源提取出來為己所用的話,不僅大大節(jié)約了搜集素材資源的時(shí)間,而且會(huì)極大地提高課件利用率。但是,F(xiàn)lash課件發(fā)布時(shí)一般都進(jìn)行加密處理,使教師無法用普通的方式導(dǎo)入到Flash中進(jìn)行編輯。而碩思閃客精靈可以解析出Flash作品中的元件及腳本,并且可以保存成swf格式,這樣在創(chuàng)作時(shí)就可以直接導(dǎo)入Flash中使用。啟動(dòng)閃客精靈,單擊工具上的“快速打開”按鈕打開一個(gè)Flash動(dòng)畫(可以是swf格式或exe格式),閃客精靈會(huì)自動(dòng)分解當(dāng)前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年采購(gòu)供應(yīng)協(xié)議
- 職業(yè)學(xué)院雙師素質(zhì)認(rèn)定辦法
- 2024年藝術(shù)品交易標(biāo)準(zhǔn)字畫買賣協(xié)議版
- 2024年視頻監(jiān)控軟件OEM合作開發(fā)協(xié)議3篇
- 2024年高品質(zhì)煙草產(chǎn)品采購(gòu)與銷售合同一
- 2024年高端制造行業(yè)技術(shù)轉(zhuǎn)讓合同
- 2024年物流倉(cāng)儲(chǔ)租賃及冷鏈配送合同3篇
- 九年級(jí)下冊(cè)u(píng)nit3Lesson13Be-Careful-Danny教學(xué)設(shè)計(jì)模板
- 廣州市加強(qiáng)知識(shí)產(chǎn)權(quán)運(yùn)用和保護(hù)促進(jìn)創(chuàng)新驅(qū)動(dòng)發(fā)展的實(shí)施方案
- 智慧煤礦與智能化開采技術(shù)的發(fā)展方向
- 出院小結(jié)模板
- HITACHI (日立)存儲(chǔ)操作說明書
- 公路自然災(zāi)害防治對(duì)策課件
- (新版教材)蘇教版二年級(jí)下冊(cè)科學(xué)全冊(cè)教案(教學(xué)設(shè)計(jì))
- 61850基礎(chǔ)技術(shù)介紹0001
- 電鏡基本知識(shí)培訓(xùn)
- 耳鳴中醫(yī)臨床路徑
- 圍堰高噴防滲墻工程監(jiān)理實(shí)施細(xì)則
- (精心整理)系動(dòng)詞練習(xí)題
- 婚戀觀教育--保持軍人本色樹立正確婚戀觀
- 體彩排列五歷史數(shù)據(jù)
評(píng)論
0/150
提交評(píng)論