![基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/cd6a79491be3f5a9152497b1164b347b/cd6a79491be3f5a9152497b1164b347b1.gif)
![基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/cd6a79491be3f5a9152497b1164b347b/cd6a79491be3f5a9152497b1164b347b2.gif)
![基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/cd6a79491be3f5a9152497b1164b347b/cd6a79491be3f5a9152497b1164b347b3.gif)
![基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/cd6a79491be3f5a9152497b1164b347b/cd6a79491be3f5a9152497b1164b347b4.gif)
![基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/cd6a79491be3f5a9152497b1164b347b/cd6a79491be3f5a9152497b1164b347b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、- PAGE I -大連理工大學(xué)畢業(yè)設(shè)計(jì)(論文)格式規(guī)范- PAGE II -摘 要隨著網(wǎng)絡(luò)通信技術(shù)和視頻編解碼技術(shù)的不斷進(jìn)步,視頻監(jiān)控系統(tǒng)也不斷發(fā)展。目前,第三代視頻監(jiān)控技術(shù)即網(wǎng)絡(luò)視頻監(jiān)控技術(shù)已經(jīng)占據(jù)市場主流,人們對(duì)移動(dòng)視頻監(jiān)控系統(tǒng)的市場需求也在日益擴(kuò)大。與此同時(shí),安卓智能手機(jī)市場飛速發(fā)展,安卓手機(jī)更新?lián)Q代速率由以前的一年一代到如今的半年一代甚至三個(gè)月一代。移動(dòng)設(shè)備的性能已經(jīng)完全可以滿足視頻監(jiān)控的硬件要求,而已經(jīng)廣泛應(yīng)用的第四代移動(dòng)通信技術(shù)和無線局域網(wǎng)技術(shù)完全可以滿足傳輸高清網(wǎng)絡(luò)視頻的要求。因此,開發(fā)一個(gè)基于安卓手機(jī)的移動(dòng)視頻監(jiān)控系統(tǒng)完全可行。本文研究了基于安卓系統(tǒng)的視頻監(jiān)控實(shí)現(xiàn)所需要的技術(shù)
2、,包括視頻編解碼技術(shù),視頻傳輸技術(shù),流媒體播放,安卓界面設(shè)計(jì)等相關(guān)知識(shí)。本監(jiān)控系統(tǒng)包括視頻采集端和視頻播放端。視頻采集端利用安卓手機(jī)的相機(jī)作為網(wǎng)絡(luò)攝像頭,實(shí)時(shí)采集監(jiān)控?cái)?shù)據(jù),視頻采集端采用MPEG編碼技術(shù)對(duì)采集的圖片進(jìn)行編解碼,并采用HTTP技術(shù)傳輸視頻流。安卓客戶端利用了基于VLC流媒體庫的播放技術(shù),可以遠(yuǎn)程實(shí)時(shí)播放攝像頭監(jiān)控的視頻。經(jīng)過在一加手機(jī)和華為手機(jī)上測試,本視頻監(jiān)控軟件具有良好的表現(xiàn),性能和清晰度均達(dá)到設(shè)計(jì)要求,能夠很好的實(shí)現(xiàn)視頻監(jiān)控功能。關(guān)鍵詞:視頻監(jiān)控;安卓系統(tǒng);MPEG;HTTP基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)- PAGE V -Design and implementa
3、tion of mobile video monitor system based on AndroidAbstract With the network communication technology and video codec technology continues to progress, video monitor system is also evolving. At present, the third generation of video monitor technology has occupied the mainstream market, people dema
4、nd on the mobile video monitor system market is also expanding. At the same time, Android smart phone market, the rapid development of Android mobile phone replacement rate from the previous generation to todays semi-annual generation or even three months generation. Mobile device performance has be
5、en fully meet the hardware requirements of video monitor, and the fourth generation of mobile communication technology and wireless network technology meet the requirements of high-definition video transmission. Therefore, the development of a mobile phone based on android mobile video monitor syste
6、m is feasible.This article has studied the technology needed for Android video monitor implementation, including Android interface design language, video codec technology, video transmission technology, streaming media playback and other related knowledge.The monitoring system includes video capture
7、 and video playback. Video acquisition using Android mobile phone camera as a web camera, real-time acquisition of monitoring data, video acquisition using MPEG encoding technology to capture the image encoding and decoding, and the use of HTTP technology to transmit video streams. Video player uses
8、 a VLC streaming library based on the playback technology, you can remotely play the camera real-time video recording.By testing on mobile phone, the video monitor software has a good performance, performance and clarity are designed to meet the requirements, it can be a very good video monitor func
9、tion.Keywords: Video Monitor; Android System; MPEG; HTTP目 錄 TOC o 1-3 h z u HYPERLINK l _Toc484687079 摘 要 PAGEREF _Toc484687079 h I HYPERLINK l _Toc484687080 Abstract PAGEREF _Toc484687080 h II HYPERLINK l _Toc484687081 緒 論 PAGEREF _Toc484687081 h 1 HYPERLINK l _Toc484687082 1.1 課題來源 PAGEREF _Toc484
10、687082 h 1 HYPERLINK l _Toc484687083 1.2 國內(nèi)外研究狀況 PAGEREF _Toc484687083 h 2 HYPERLINK l _Toc484687084 1.3 項(xiàng)目目標(biāo) PAGEREF _Toc484687084 h 4 HYPERLINK l _Toc484687085 1.4 本章小結(jié) PAGEREF _Toc484687085 h 4 HYPERLINK l _Toc484687086 2 開發(fā)環(huán)境和相關(guān)技術(shù)介紹 PAGEREF _Toc484687086 h 5 HYPERLINK l _Toc484687087 2.1 開發(fā)環(huán)境 PA
11、GEREF _Toc484687087 h 5 HYPERLINK l _Toc484687088 2.2 編程語言 PAGEREF _Toc484687088 h 5 HYPERLINK l _Toc484687089 2.3 關(guān)鍵技術(shù) PAGEREF _Toc484687089 h 6 HYPERLINK l _Toc484687090 2.3.1 HTTP技術(shù) PAGEREF _Toc484687090 h 6 HYPERLINK l _Toc484687091 2.3.2 Surfaceview PAGEREF _Toc484687091 h 6 HYPERLINK l _Toc484
12、687092 2.3.3 Java多線程 PAGEREF _Toc484687092 h 7 HYPERLINK l _Toc484687093 2.4 本章小結(jié) PAGEREF _Toc484687093 h 7 HYPERLINK l _Toc484687094 3 需求分析和系統(tǒng)設(shè)計(jì) PAGEREF _Toc484687094 h 8 HYPERLINK l _Toc484687095 3.1 可行性研究 PAGEREF _Toc484687095 h 8 HYPERLINK l _Toc484687096 3.2 系統(tǒng)總體設(shè)計(jì) PAGEREF _Toc484687096 h 8 HYP
13、ERLINK l _Toc484687097 3.3 系統(tǒng)界面需求和設(shè)計(jì) PAGEREF _Toc484687097 h 10 HYPERLINK l _Toc484687098 3.4 系統(tǒng)功能需求和設(shè)計(jì) PAGEREF _Toc484687098 h 13 HYPERLINK l _Toc484687099 3.5 算法選擇 PAGEREF _Toc484687099 h 13 HYPERLINK l _Toc484687100 3.6 本章小結(jié) PAGEREF _Toc484687100 h 13 HYPERLINK l _Toc484687101 4 系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc
14、484687101 h 14 HYPERLINK l _Toc484687102 4.1 界面實(shí)現(xiàn) PAGEREF _Toc484687102 h 14 HYPERLINK l _Toc484687103 4.1.1 采集端界面模塊實(shí)現(xiàn) PAGEREF _Toc484687103 h 14 HYPERLINK l _Toc484687104 4.1.2 安卓端界面模塊實(shí)現(xiàn) PAGEREF _Toc484687104 h 16 HYPERLINK l _Toc484687105 4.2 系統(tǒng)功能實(shí)現(xiàn) PAGEREF _Toc484687105 h 18 HYPERLINK l _Toc48468
15、7106 4.2.1 采集端預(yù)覽模塊實(shí)現(xiàn) PAGEREF _Toc484687106 h 18 HYPERLINK l _Toc484687107 4.2.2 安卓端播放模塊實(shí)現(xiàn) PAGEREF _Toc484687107 h 21 HYPERLINK l _Toc484687108 4.2.3 PC端實(shí)現(xiàn) PAGEREF _Toc484687108 h 22 HYPERLINK l _Toc484687109 4.3 系統(tǒng)實(shí)現(xiàn)結(jié)果和分析 PAGEREF _Toc484687109 h 23 HYPERLINK l _Toc484687110 4.4 本章小結(jié) PAGEREF _Toc4846
16、87110 h 27 HYPERLINK l _Toc484687111 5 系統(tǒng)測試 PAGEREF _Toc484687111 h 28 HYPERLINK l _Toc484687112 5.1 界面和功能測試 PAGEREF _Toc484687112 h 28 HYPERLINK l _Toc484687113 5.1.1 采集端主界面測試 PAGEREF _Toc484687113 h 28 HYPERLINK l _Toc484687114 5.1.2 采集端設(shè)置界面測試 PAGEREF _Toc484687114 h 28 HYPERLINK l _Toc484687115 5
17、.1.3 安卓端界面測試 PAGEREF _Toc484687115 h 29 HYPERLINK l _Toc484687116 5.1.4 安卓端功能測試 PAGEREF _Toc484687116 h 29 HYPERLINK l _Toc484687117 5.1.5 PC端測試 PAGEREF _Toc484687117 h 30 HYPERLINK l _Toc484687118 5.2 系統(tǒng)性能測試 PAGEREF _Toc484687118 h 30 HYPERLINK l _Toc484687119 5.3 本章小結(jié) PAGEREF _Toc484687119 h 32 HY
18、PERLINK l _Toc484687120 結(jié) 論 PAGEREF _Toc484687120 h 33 HYPERLINK l _Toc484687121 參 考 文 獻(xiàn) PAGEREF _Toc484687121 h 34 HYPERLINK l _Toc484687122 致 謝 PAGEREF _Toc484687122 h 35基于安卓的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) PAGE 46大連理工大學(xué)畢業(yè)設(shè)計(jì)(論文)格式規(guī)范 PAGE 2緒 論1.1 課題來源說起視頻監(jiān)控,很多人的第一印象仍然是固定的前端攝像頭和笨重的后端監(jiān)視器。其實(shí)不然,近些年來,隨著移動(dòng)通信技術(shù)的飛速發(fā)展,視頻監(jiān)控網(wǎng)
19、絡(luò)化不斷加快,基于互聯(lián)網(wǎng)傳輸?shù)囊苿?dòng)視頻監(jiān)控技術(shù)正逐漸興起。只要有網(wǎng)絡(luò)的地方,我們就可以通過移動(dòng)終端,查看監(jiān)控畫面,觀看監(jiān)控視頻1。并且人們可以根據(jù)自己的需要添加報(bào)警裝置,可以在電腦終端進(jìn)行報(bào)警布防設(shè)置,一旦發(fā)現(xiàn)異常情況,網(wǎng)絡(luò)移動(dòng)終端可接到報(bào)警提醒,而且手機(jī),平板攝像頭的可移動(dòng)性大大增加了安裝監(jiān)控系統(tǒng)的便利,也提高了監(jiān)控系統(tǒng)的靈活性。手機(jī),平板等移動(dòng)終端真正的成為了我們的安全監(jiān)視中心。隨著人們對(duì)移動(dòng)監(jiān)控需求的不斷增大,移動(dòng)視頻監(jiān)控的應(yīng)用場景也越來越豐富。家居視頻監(jiān)控和視頻直播是移動(dòng)監(jiān)控的典型應(yīng)用。家居視頻監(jiān)控的發(fā)展是隨著整個(gè)視頻監(jiān)控市場的不斷進(jìn)步而發(fā)展的。在視頻監(jiān)控發(fā)展初期,網(wǎng)絡(luò)技術(shù)還很不發(fā)達(dá),
20、用戶無法遠(yuǎn)程觀看監(jiān)控視頻,只能在本地查看監(jiān)控視頻,當(dāng)時(shí)主要的家居應(yīng)用有:監(jiān)視家庭保姆的工作情況;或者用戶不放心小孩,老人一個(gè)人在家里,通過視頻監(jiān)控,照看老人或小孩。這個(gè)階段的視頻家居應(yīng)用還很少,視頻監(jiān)控系統(tǒng)也多以模擬監(jiān)控系統(tǒng)居多?;九渲脼榍岸四M攝像頭和后端監(jiān)視器,如果有錄制監(jiān)控視頻的需求,還需要硬盤錄像機(jī)。這個(gè)階段家居視頻監(jiān)控的市場需求也很小,普通人幾乎很少使用。后來伴隨著網(wǎng)絡(luò)通信技術(shù)的不斷進(jìn)步,家居監(jiān)控也有了一定的發(fā)展,很多用戶通過電腦的瀏覽器端或軟件客戶端來監(jiān)視家里的情況,基于網(wǎng)絡(luò)傳輸?shù)倪h(yuǎn)程視頻監(jiān)控系統(tǒng)開始興起。但是由于受到網(wǎng)絡(luò)費(fèi)用,網(wǎng)絡(luò)帶寬和觀看條件等因素限制,一般家庭使用還是少數(shù)。
21、在這個(gè)家居視頻監(jiān)控階段,一路監(jiān)控視頻大約需要256K的帶寬,而且低帶寬環(huán)境下的視頻編解碼技術(shù)也不成熟,應(yīng)用到監(jiān)控系統(tǒng)中的效果也不理想?,F(xiàn)階段,家居視頻監(jiān)控可以通過第四代移動(dòng)通信技術(shù)或者無線局域網(wǎng)技術(shù)來實(shí)時(shí)監(jiān)控家里的狀況。家居視頻監(jiān)控的功能比以前也有了長足的進(jìn)步。從初期的簡單觀看監(jiān)視視頻,到現(xiàn)在的報(bào)警,對(duì)講,甚至雙向視頻,家居監(jiān)控系統(tǒng)已經(jīng)進(jìn)入到我們每一個(gè)人的生活中。隨著智能家居行業(yè)的興起,家居智能監(jiān)控的發(fā)展也越來越重要。 視頻直播是移動(dòng)視頻監(jiān)控的另一個(gè)應(yīng)用場景。視頻直播是指利用互聯(lián)網(wǎng)及流媒體技術(shù)進(jìn)行直播,視頻因融合了圖像、文字等豐富元素,聲形并茂,效果極佳,逐漸成為互聯(lián)網(wǎng)的主流表達(dá)方式。視頻直播
22、的實(shí)現(xiàn)方式:當(dāng)視頻主播發(fā)出直播請(qǐng)求后,服務(wù)器根據(jù)直播信息,將直播頻道的播放地址返回給觀眾,觀眾訪問播放地址即可觀看視頻直播。直播業(yè)務(wù)一般采用組播實(shí)現(xiàn),而不是單播或者廣播。因?yàn)镮P組播群組成員的關(guān)系是動(dòng)態(tài)的,用戶主機(jī)可以隨時(shí)加入或者推出IP群組。同單播和廣播相比較而言,組播的效率是最高的,因?yàn)槿魏谓o定的鏈路最多使用一次,可以節(jié)省網(wǎng)絡(luò)資源和網(wǎng)絡(luò)帶寬,降低成本。相對(duì)于傳統(tǒng)的媒體而言,視頻直播具有得天獨(dú)厚的優(yōu)勢。視頻直播的快捷性:隨著網(wǎng)絡(luò)的不斷普及,人們對(duì)移動(dòng)終端如手機(jī),平板的使用越來越多。在無線通信技術(shù)如此發(fā)達(dá)的今天,這些便攜式設(shè)備完全能夠滿足流媒體播放的硬件要求。而很多大事件的直播都是轉(zhuǎn)瞬即逝的,
23、即使時(shí)候可能會(huì)有相關(guān)的回放和介紹,但是觀看直播的體驗(yàn)卻是失不再來的。網(wǎng)絡(luò)直播則很好的解決了這一個(gè)問題,只要有一臺(tái)可以接入互聯(lián)網(wǎng)的移動(dòng)終端設(shè)備,你就可以看到你想看到的一切。視頻直播的互動(dòng)性:視頻直播不僅可以讓用戶完整的看到事情發(fā)生的過程,讓觀眾與直播現(xiàn)場更近一步,觀眾還可以通過論壇或者彈幕等形式發(fā)表自己的看法,與其他的觀眾一起交流討論。這樣直觀方便的交流互動(dòng)是傳統(tǒng)媒體無法做到的。視頻直播的靈活性:傳統(tǒng)的電視節(jié)目播出時(shí)受到了線性傳播的限制,用戶無法選擇自己想觀看的節(jié)目,用戶沒有自主選擇的權(quán)利。網(wǎng)絡(luò)視頻直播則很好地解決了這個(gè)問題。在視頻直播結(jié)束后,視頻被保存在相關(guān)的直播平臺(tái)上,觀眾如果錯(cuò)過了直播觀看
24、,依然可以在任何時(shí)間,通過網(wǎng)絡(luò)平臺(tái)對(duì)錄制的視頻進(jìn)行點(diǎn)播,這樣的觀看更加靈活,更加貼近受眾。 現(xiàn)如今,隨著互聯(lián)網(wǎng),大數(shù)據(jù),物聯(lián)網(wǎng)等技術(shù)的發(fā)展,移動(dòng)視頻監(jiān)控也處于爆發(fā)式增長的階段2。除了傳統(tǒng)的安防企業(yè),互聯(lián)網(wǎng)企業(yè),甚至家居企業(yè),IT通信企業(yè)都加入到其中,移動(dòng)視頻監(jiān)控的應(yīng)用空間越來越廣,發(fā)展前景也越來越明朗。 1.2 國內(nèi)外研究狀況通常來說:視頻監(jiān)控系統(tǒng)的發(fā)展經(jīng)歷了三個(gè)階段,分別是模擬監(jiān)控時(shí)代,數(shù)字監(jiān)控時(shí)代和網(wǎng)絡(luò)視頻監(jiān)控時(shí)代。視頻監(jiān)控技術(shù)經(jīng)過了多年的發(fā)展,視頻監(jiān)控畫面從最初的D1標(biāo)清畫面,逐漸邁向1080p全高清,甚至4K超高清。隨之而來的問題是,前端采集設(shè)備像素的提高給視頻編解碼和后端存儲(chǔ)設(shè)備帶來
25、了巨大的壓力。因此,視頻編解碼技術(shù)成為了視頻監(jiān)控技術(shù)發(fā)展的焦點(diǎn),也是當(dāng)前視頻監(jiān)控廠商技術(shù)競爭最激烈的地方。目前國內(nèi)主流廠商的使用的視頻編解碼普遍使用的是MPEG-4和H.264編解碼技術(shù)。當(dāng)然,隨著H.265技術(shù)的不斷成熟,憑借其更優(yōu)越的性能表現(xiàn),將會(huì)逐步取代MPEG-4和H.264成為主流。在世界范圍內(nèi),目前的視頻監(jiān)控領(lǐng)域,基本保持著H.264/MPEG-4為主,H.265和SVAC為輔的局面3。下面對(duì)常用的視頻編解碼概念和技術(shù)進(jìn)行介紹并分析其優(yōu)缺點(diǎn)。MPEG-4編碼技術(shù):Moving Pictures Experts Group,是一個(gè)致力于運(yùn)動(dòng)圖像的壓縮編碼標(biāo)準(zhǔn)化工作的組織4。MPEG-
26、4是在MPEG-1和MPEG-2基礎(chǔ)上發(fā)展改進(jìn)而來的。MPEG-4標(biāo)準(zhǔn)是基于內(nèi)容和對(duì)對(duì)象的編碼標(biāo)準(zhǔn),和傳統(tǒng)的圖像編碼方式不同,MPEG-4只處理幀和幀之間的差異元素,即拋棄相同圖像元素,大大減少了編碼后合成視頻文件的體積,和傳統(tǒng)的圖像編碼相比,同樣的文件體積,可以還原得到更清晰的圖像。換句話說,相同的原始圖像,MPEG-4技術(shù)具有更高的壓縮比。MPEG-4在2000年正式成為國際標(biāo)準(zhǔn)。MPEG-4仍是當(dāng)前視頻監(jiān)控系統(tǒng)的主流編解碼技術(shù)。H.263編解碼技術(shù):H.263視頻編碼標(biāo)準(zhǔn)是專為中高運(yùn)動(dòng)圖像壓縮所設(shè)計(jì)的低碼率圖像壓縮標(biāo)準(zhǔn)5。H.263技術(shù)采用運(yùn)動(dòng)視頻編碼中常用的編碼技術(shù),將編碼過程分為幀內(nèi)
27、編碼和幀間編碼兩個(gè)過程。.263技術(shù)相對(duì)于之前的編碼技術(shù)具有編碼技術(shù)快,碼率低,適用于網(wǎng)絡(luò)條件不是很好和需要雙向編解碼的場合。H.264編解碼技術(shù):H.264技術(shù)是國際標(biāo)準(zhǔn)化組織和國際電聯(lián)聯(lián)合制定的視頻編解碼標(biāo)準(zhǔn),它也是MPEG-4技術(shù)的第十部分。H.264技術(shù)相對(duì)于其他編解碼技術(shù)最大的優(yōu)勢是具有極高的壓縮比6。在同等圖像質(zhì)量條件下,H.264的壓縮比是MPEG-4的1.5倍到2倍左右。在視頻監(jiān)控系統(tǒng)的應(yīng)用中,H.264低壓縮比的特點(diǎn)起到了極大的作用,用戶在觀看到到高清的視頻時(shí),節(jié)省了網(wǎng)絡(luò)帶寬和成本,節(jié)約了下載時(shí)間和存儲(chǔ)空間。H.264編解碼流程包括五個(gè)部分:幀內(nèi)和幀間預(yù)測,變換和反變化,量化
28、和反量化,環(huán)路濾波和熵編碼。在H.264的發(fā)展過程中,高性能的DSP對(duì)H.264標(biāo)準(zhǔn)的應(yīng)用起到了重要作用。目前市場上主流監(jiān)控設(shè)備基本采用的是H.264技術(shù)標(biāo)準(zhǔn)。H.265編解碼技術(shù):隨著前端視頻采集設(shè)備清晰度的不斷提高,從300萬到500萬,魚眼相機(jī)甚至已經(jīng)達(dá)到了1200萬像素值,這意味著視頻監(jiān)控的超高清時(shí)代已經(jīng)到來。但是監(jiān)控系統(tǒng)所生成的視頻文件體積也不斷變大,超高清的視頻體驗(yàn)帶來的是傳輸?shù)木薮髩毫?,因此?duì)視頻編解碼技術(shù)的要求也進(jìn)一步提高。舉例來說,1路24幀的1080P視頻,原始數(shù)據(jù)流暢傳輸?shù)囊蟠蠹s是1G以上,采用H.264編碼技術(shù)壓縮后,可以獲得6M甚至4M的傳輸碼流,如果換成前端采集設(shè)
29、備采集2K分辨率以上的原始視頻,如果仍然采用H.264壓縮技術(shù),那么所需要的碼流是20M以上。因此需要一種性能更高的壓縮技術(shù)來滿足超高清視頻壓縮的需求。所以,H.265技術(shù)應(yīng)運(yùn)而生。H.265編碼技術(shù)是國際電聯(lián)在制定H.264標(biāo)準(zhǔn)之后制定的新的視頻編解碼標(biāo)準(zhǔn)7。H.265保留了H.264技術(shù)的優(yōu)點(diǎn),并對(duì)相關(guān)技術(shù)進(jìn)行了改進(jìn)。新技術(shù)著重改善了延遲,編碼質(zhì)量和碼流和算法復(fù)雜度的問題,達(dá)到最優(yōu)設(shè)置。H.264由于算法優(yōu)化,可以以低于128KB/s的速率傳輸標(biāo)清視頻,相同條件下,H.265可以傳送普通高清視頻。如今,H.265技術(shù)已悄然興起,各個(gè)廠家也積極的宣傳推廣H.265技術(shù)。預(yù)計(jì)未來的幾年內(nèi),H.
30、265技術(shù)將成為視頻監(jiān)控設(shè)備的主流編解碼技術(shù)。SVAC編解碼技術(shù):SVAC技術(shù)是中星微電子和公安部聯(lián)合制定的一套視頻編解碼標(biāo)準(zhǔn)。SVAC技術(shù)是中國自主知識(shí)產(chǎn)權(quán),不是國際性標(biāo)準(zhǔn)。SVAC標(biāo)準(zhǔn)目的在于加強(qiáng)安防視頻監(jiān)控系統(tǒng)和公安報(bào)警平臺(tái)的安全應(yīng)用。從編碼效率上來來講,SVAC技術(shù)優(yōu)于H.264,但是不如H.265。目前國內(nèi)支持支持SVAC標(biāo)準(zhǔn)的廠家不多,國內(nèi)視頻監(jiān)控知名廠商還是多以H.264和MPEG-4為主,但也有少量設(shè)備只SVAC標(biāo)準(zhǔn)8。目前從市場來看,從強(qiáng)制試點(diǎn)推行開始,基本上所有的廠家的視頻監(jiān)控設(shè)備都要支持SVAC標(biāo)準(zhǔn),已經(jīng)有大量的前端設(shè)備開始使用SVAC標(biāo)準(zhǔn),相信在不久的將來,具有中國自主
31、技術(shù)的SVAC標(biāo)準(zhǔn)將在國內(nèi)得到普遍支持和應(yīng)用。1.3 項(xiàng)目目標(biāo)本項(xiàng)目旨在建立一個(gè)安卓的視頻監(jiān)控系統(tǒng)?,F(xiàn)在安卓手機(jī)市場迅速發(fā)展,安卓新機(jī)的發(fā)布頻率也由以前的一年一次到現(xiàn)在的半年甚至兩三個(gè)月一次,安卓手機(jī)更新?lián)Q代速度越來越快,智能設(shè)備普及率越來越高,每個(gè)人都有一部甚至多部智能手機(jī)。在用戶對(duì)手機(jī)進(jìn)行更新?lián)Q代的時(shí)候,難免有舊的設(shè)備閑置下來。通過安裝一個(gè)安卓視頻采集軟件,即可將安卓手機(jī)變身為網(wǎng)絡(luò)攝像頭安置在家里或辦公室進(jìn)行監(jiān)控,用戶可以在PC端或安卓手機(jī)上實(shí)時(shí)觀看監(jiān)控情況。本項(xiàng)目打算開發(fā)一個(gè)輕量級(jí)的移動(dòng)視頻監(jiān)控系統(tǒng),本移動(dòng)視頻監(jiān)控系統(tǒng)包括安卓視頻采集端,電腦客戶端和安卓手機(jī)客戶端。電腦客戶端和手機(jī)客戶端
32、可以選擇觀看源(可能有多個(gè)由安卓手機(jī)搭建的網(wǎng)絡(luò)攝像頭組),客戶端可設(shè)置攝像頭參數(shù),同時(shí)可以對(duì)視頻實(shí)現(xiàn)回放,暫停,截屏,等功能。1.4 本章小結(jié)本章介紹了本安卓視頻監(jiān)控系統(tǒng)的來源和實(shí)際應(yīng)用,研究了視頻監(jiān)控傳輸過程中的關(guān)編解碼技術(shù)和當(dāng)前移動(dòng)視頻監(jiān)控編碼技術(shù)的發(fā)展,介紹了本項(xiàng)目的想要實(shí)現(xiàn)的目標(biāo)和意義。2 開發(fā)環(huán)境和相關(guān)技術(shù)介紹2.1 開發(fā)環(huán)境本移動(dòng)視頻監(jiān)控基于安卓操作系統(tǒng)開發(fā)。安卓操作系統(tǒng)是由谷歌公司帶領(lǐng)開發(fā)的移動(dòng)操作系統(tǒng)。安卓系統(tǒng)主要安裝在移動(dòng)終端設(shè)備上,如智能手機(jī)和平板等設(shè)備9。安卓應(yīng)用一般由四大組件構(gòu)成。四大組件分別是:活動(dòng),服務(wù),廣播接收器和內(nèi)容服務(wù)器?;顒?dòng)是安卓應(yīng)用的主界面,是軟件與用戶交
33、互的界面,也是用戶體驗(yàn)最直觀的地方,安卓是一個(gè)用戶友好的操作系統(tǒng)。其次相對(duì)于其他移動(dòng)操作系統(tǒng),安卓平臺(tái)有以下不可替代的優(yōu)點(diǎn):首先安卓有著數(shù)量豐富的控件,安卓系統(tǒng)為開發(fā)者提供了豐富的系統(tǒng)控件,利用這些控件,開發(fā)者可以開發(fā)操作簡單,界面漂亮的軟件,同時(shí),借助這些控件可以滿足一些設(shè)計(jì)需求,如一些布局控件。其次安卓系統(tǒng)是一個(gè)開源的系統(tǒng),開源意味著安卓系統(tǒng)給開發(fā)者提供了自由開放的開發(fā)環(huán)境,就會(huì)有更多的廠家和開發(fā)者加入安卓陣營。同時(shí)也給用戶帶來了豐富的硬件選擇10。最后,安卓系統(tǒng)具有完整的文件權(quán)限,支持?jǐn)U展存儲(chǔ),方便進(jìn)行視頻錄制,截屏等文件操作。最近幾年,安卓手機(jī)市場份額持續(xù)增長,根據(jù)2016年市場份額統(tǒng)
34、計(jì),安卓系統(tǒng)占全球智能手機(jī)86.2%的市場份額,根據(jù)預(yù)測,在2018,2019年安卓市場份額仍會(huì)增長。因此,選擇安卓系統(tǒng)進(jìn)行開發(fā),軟件的升級(jí)維護(hù)都可以得到保障,同時(shí)借助安卓系統(tǒng)的高占有率,也方便軟件的發(fā)布推廣。本移動(dòng)視頻監(jiān)控系統(tǒng)基于Android Studio開發(fā)。Android Studio是谷歌開發(fā)的安卓開發(fā)工具。相對(duì)于Eclipse,Android Studio具有啟動(dòng)速度快,UI更漂亮,完善的插件系統(tǒng),整合了gradle構(gòu)建工具和完美整合版本控制等優(yōu)點(diǎn)。因此,本次開發(fā)使用Android Studio開發(fā)工具。2.2 編程語言本移動(dòng)視頻監(jiān)控系統(tǒng)采用Java語言進(jìn)行開發(fā)。Java語言是一種
35、面向?qū)ο箝_發(fā)的程序設(shè)計(jì)語言。Java語言吸收了C+和其他語言的優(yōu)點(diǎn),而且Java語言有自己獨(dú)特的有點(diǎn)。Java語言支持多線程并發(fā)設(shè)計(jì),支持多媒體數(shù)據(jù)控制,支持網(wǎng)絡(luò)傳輸。Java語言的主要特性如下:Java語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java語言提供了豐富的類,繼承和接口的支持,Java語言支持接口之間的多繼承,支持用implements完成類與接口之間的實(shí)現(xiàn)機(jī)制。其次,Java語言是分布式的。語言。在Java的應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口,這個(gè)接口提供了網(wǎng)絡(luò)編程接口的類庫。Java語言是一種高性能的語言。與解釋性的高級(jí)腳本語言相比,Java語言是高性能。Java語言還有一個(gè)最重要的有
36、點(diǎn)就是Java程序的健壯性。Java語言的異常處理,強(qiáng)類型機(jī)制是Java語言健壯性的保證,丟棄指針是Java語言明智的選擇。同時(shí),Java語言的安全檢查機(jī)制使得Java語言更具有健壯性。因此,采用Jav語言開發(fā)本移動(dòng)視頻監(jiān)控系統(tǒng)。2.3 關(guān)鍵技術(shù)2.3.1 HTTP技術(shù)HTTP (Hypertext Transfer Protocol ),中文全稱是超文本傳輸協(xié)議,HTTP協(xié)議在osi七層模型的應(yīng)用層,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。HTTP協(xié)議主要有以下特點(diǎn):HTTP協(xié)議支持客戶端/服務(wù)器模型,如瀏覽器中的文本和圖像傳輸就用到了HTTP協(xié)議11。HTTP協(xié)議靈活,它可以傳
37、輸不同類型的數(shù)據(jù),正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記即可。與TCP協(xié)議不同,HTTP協(xié)議是一種無連接的協(xié)議,所謂無連接的含義是:客戶端發(fā)起請(qǐng)求后,服務(wù)器不需要發(fā)送確認(rèn),直接發(fā)送帶傳輸?shù)臄?shù)據(jù)即可。服務(wù)器發(fā)送完客戶端請(qǐng)求的數(shù)據(jù),收到客戶端的應(yīng)答,即可斷開連接。這種傳輸方式減少了連接建立的時(shí)間,可以節(jié)省傳輸時(shí)間,提高傳輸效率。HTTP協(xié)議是一種無狀態(tài)的協(xié)議:同一個(gè)會(huì)話的連續(xù)兩個(gè)請(qǐng)求互相不了解,他們由最新實(shí)例化的環(huán)境進(jìn)行解析,除了應(yīng)用本身可能已經(jīng)存儲(chǔ)在全局對(duì)象中的所有信息外,該環(huán)境不保存與會(huì)話有關(guān)的任何信息。2.3.2 SurfaceviewSurface是原始圖像緩沖區(qū)(raw buf
38、fer)的一個(gè)句柄,而原始圖像緩沖區(qū)是由屏幕圖像合成器(screen compositor)管理12。就像在C語言中一樣,通過一個(gè)文件的句柄,就可以獲得文件內(nèi)容,控制文件。同理,通過Surface就可以獲得圖像緩沖區(qū)的內(nèi)容。SurfaceView提供了一個(gè)專門用于繪制的surface,你可以控制這個(gè)Surface的格式和尺寸。Surfaceview控制這個(gè)Surface在屏幕的正確繪制位置。簡單來說,SurfaceView與Surface的聯(lián)系就是,Surface是管理顯示內(nèi)容的數(shù)據(jù)(implementsParcelable),包括存儲(chǔ)數(shù)據(jù)的交換。而SurfaceView就是把這些數(shù)據(jù)顯示出來
39、到屏幕上面。可以通過SurfaceHolder這個(gè)接口去訪問Surface,而執(zhí)行g(shù)etHolder()方法可以得到SurfaceHolder接口。當(dāng)SurfaceView的窗口可見時(shí),Surface就會(huì)被創(chuàng)建,當(dāng)SurfaceView窗口隱藏時(shí),Surface就會(huì)被銷毀。當(dāng)然了,你也可以通過復(fù)寫 HYPERLINK /reference/android/view/SurfaceHolder.Callback.html l surfaceCreated%28android.view.SurfaceHolder%29 surfaceCreated(SurfaceHolder)和 HYPERLIN
40、K /reference/android/view/SurfaceHolder.Callback.html l surfaceDestroyed%28android.view.SurfaceHolder%29 surfaceDestroyed(SurfaceHolder)這兩個(gè)方法來驗(yàn)證一下Surface何時(shí)被創(chuàng)建與何時(shí)被銷毀。所有SurfaceView 和 HYPERLINK /reference/android/view/SurfaceHolder.Callback.html SurfaceHolder.Callback的方法都應(yīng)該在主線程(UI線程)里面調(diào)用,應(yīng)該要確保渲染進(jìn)程所訪問變量
41、的同步性。你必須確保只有當(dāng)Surface有效的時(shí)候,才能讓渲染進(jìn)程訪問。簡單來說,SurfaceView與Surface的聯(lián)系就是,Surface是管理顯示內(nèi)容的數(shù)據(jù),包括存儲(chǔ)于數(shù)據(jù)的交換。而SurfaceView就是把這些數(shù)據(jù)顯示出來到屏幕上面。SurfaceHolder是控制surface的一個(gè)抽象接口,你可以通過SurfaceHolder來控制surface的尺寸和格式,或者修改surface的像素,監(jiān)視surface的變化等等,SurfaceHolder是SurfaceView的典型接口。SurfaceHolder.Callback是監(jiān)聽surface改變的一個(gè)接口。2.3.3 Jav
42、a多線程線程,是程序執(zhí)行的最小單元,不具有自己的內(nèi)存單元,與同一進(jìn)程當(dāng)中的其他線程共享全部的資源,使用多線程可以合理的利用計(jì)算機(jī)的資源,提高處理效率。Java多線程實(shí)現(xiàn)的方法有兩種,第一實(shí)現(xiàn)Java.land.Runnable接口,實(shí)現(xiàn)它的Run()方法,并將線程的執(zhí)行主體放入其中;第二,Java.lang.Thread,重寫它的Run()方法,然后將線程的執(zhí)行主體放入其中。這兩種實(shí)現(xiàn)方法,繼承Thread類方法實(shí)現(xiàn)起來比較簡單,但是繼承Thread類之后就不能繼承其他的類了,也就不能繼承別的類中我們想使用的方法了。而使用Runnable()方法就不存在這種問題,這種實(shí)現(xiàn)方式將線程主題和線程對(duì)
43、象分離開來,邏輯上比較清晰,更推薦使用Runnable()方法。2.4 本章小結(jié)本章介紹了開發(fā)本系統(tǒng)所用到的開發(fā)語言,開發(fā)環(huán)境和相關(guān)技術(shù),為接下來的開發(fā)做了準(zhǔn)備工作 ,保證項(xiàng)目順利進(jìn)行。3 需求分析和系統(tǒng)設(shè)計(jì)3.1 可行性研究在開發(fā)一個(gè)軟件時(shí),首先要考慮的就是可行性分析??尚行苑治鲆渤蔀榭尚行匝芯浚侠淼目尚行苑治隹梢悦鞔_開發(fā)的目的,減小開發(fā)的盲目性,避免浪費(fèi)人力額和資源??尚行匝芯恳话銖囊韵氯齻€(gè)方面著手:(1)經(jīng)濟(jì)可行性伴隨著手機(jī)硬件行業(yè)的不斷進(jìn)步和移動(dòng)通信技術(shù)的迅速發(fā)展,安卓智能手機(jī)的價(jià)格也逐漸平民化,無線局域網(wǎng)和移動(dòng)網(wǎng)絡(luò)的接入也很方便。在移動(dòng)互聯(lián)網(wǎng)迅速發(fā)展的時(shí)代,每個(gè)人都有一部甚至多部智
44、能手機(jī),而安卓移動(dòng)視頻監(jiān)控所需的僅需要一部安卓手機(jī),因此,開發(fā)一個(gè)基于安卓平臺(tái)的移動(dòng)視頻監(jiān)控系統(tǒng)在經(jīng)濟(jì)上是完全可行的。(2)技術(shù)可行性開發(fā)一個(gè)安卓的視頻監(jiān)控系統(tǒng),需要的技術(shù)有視頻編解碼技術(shù),網(wǎng)絡(luò)傳輸技術(shù),流媒體傳輸技術(shù)。安卓程序多用Java語言開發(fā),本次開發(fā)所用的技術(shù)有完整的安卓的類庫支持。因此,在技術(shù)上,開發(fā)是完全可行的。(3) 操作可行性安卓終端安裝視頻采集軟件,可充當(dāng)IP攝像頭,操作簡單,在安卓端或PC端觀看,因此操作可行。3.2 系統(tǒng)總體設(shè)計(jì)本視頻監(jiān)控系統(tǒng)由視頻采集端,服務(wù)器端和客戶端組成。由安卓手機(jī)充當(dāng)視頻采集端,客戶端包括電腦客戶端和手機(jī)客戶端。本視頻監(jiān)控系統(tǒng)操作容易,上手簡單。本
45、視頻監(jiān)控系統(tǒng)結(jié)構(gòu)圖如圖3.1所示:圖3.1 系統(tǒng)結(jié)構(gòu)圖軟件開發(fā)時(shí),首先要設(shè)計(jì)好軟件的各個(gè)模塊,合理的模塊設(shè)計(jì)才能使軟件正常運(yùn)行,系統(tǒng)正常運(yùn)轉(zhuǎn)。本移動(dòng)視頻監(jiān)控系分為視頻采集端,電腦客戶端和手機(jī)客戶端三個(gè)部分。視頻采集端由預(yù)覽模塊,編碼模塊,和傳輸模塊組成。手機(jī)客戶端由界面模塊和播放模塊組成。電腦客戶端由播放模塊和設(shè)置模塊組成。(1)視頻采集端模塊圖如圖3.2所示:圖3.2 視頻采集模塊圖(2)手機(jī)客戶端模塊圖如圖3.3所示:圖3.3 手機(jī)客戶端模塊圖(3)電腦客戶端模塊圖如圖3.4所示:圖3.4 電腦客戶端模塊圖3.3 系統(tǒng)界面需求和設(shè)計(jì)軟件的界面是用戶日常接觸最多的地方,是用戶與硬件互動(dòng)的窗口
46、。軟件界面一方面要清晰的展示出軟件的功能,另一方面也要給用戶良好的視覺審美效果??茖W(xué)合理的用戶界面可以簡化用戶操作,方便用戶使用13。判斷一個(gè)軟件界面是否合理,是否對(duì)用戶友好,應(yīng)在滿足用戶需求的同時(shí)優(yōu)化操作邏輯,滿足用戶審美需求,為用戶提供最大的便利。開發(fā)者在開發(fā)的時(shí)候,不僅要滿足用戶的功能需求,也要滿足用戶的審美需求,為用戶提供良好的人機(jī)交互體驗(yàn)。用戶界面設(shè)計(jì)的主要原則如下:一致性原則。用戶界面設(shè)計(jì)最重要的原則就是一致性原則,用戶界面設(shè)計(jì)最重要的事情就是保持界面運(yùn)行的一致。對(duì)于選擇列表框來說,如果要保持一致性原則就應(yīng)該保持按下一個(gè)按鈕與按下所有按鈕的響應(yīng)事件是相同的。保持用戶界面的一致性可以
47、降低用戶的學(xué)習(xí)成本,有利于軟件推廣。本視頻監(jiān)控系統(tǒng)的視頻采集端由主界面和設(shè)置界面組成。主界面是攝像頭預(yù)覽界面,在主界面應(yīng)當(dāng)展示服務(wù)器的相關(guān)信息。在主界面可以點(diǎn)擊設(shè)置按鈕,選擇攝像頭,設(shè)置閃光燈,設(shè)置視頻源參數(shù)等。客戶端界面可自主選擇輸入服務(wù)器地址,還可以選擇不同的監(jiān)控源,客戶端界面還內(nèi)置了常用的服務(wù)器地址??蛻舳私缑孢€有操作提示,提示如何使用客戶端。本移動(dòng)視頻監(jiān)控系統(tǒng)的軟件設(shè)計(jì)本著簡化操作,功能明確的設(shè)計(jì)目的,設(shè)計(jì)如下:(1)采集端設(shè)計(jì)采集端屏幕顯示的是攝像頭的預(yù)覽,為了方便用戶查看服務(wù)器地址,可以在預(yù)覽界面顯示相關(guān)使用信息。同時(shí)應(yīng)當(dāng)有一個(gè)設(shè)置按鈕,在二級(jí)菜單中可以對(duì)相關(guān)參數(shù)進(jìn)行修改。采集端主
48、界面設(shè)計(jì)圖如圖3.5所示:圖3.5 采集端主界面設(shè)計(jì)圖采集端設(shè)置示意圖如圖3.6所示:圖3.6 采集端設(shè)置設(shè)計(jì)圖(2)手機(jī)客戶端設(shè)計(jì)客戶端界面首先應(yīng)當(dāng)有簡單明了的使用指南。因?yàn)楸疽苿?dòng)視頻監(jiān)控系統(tǒng)可能有多個(gè)網(wǎng)絡(luò)攝像頭,因此在客戶端界面應(yīng)當(dāng)有攝像頭選擇按鈕。同時(shí),在客戶端也應(yīng)該可以對(duì)攝像頭的相關(guān)參數(shù)進(jìn)行設(shè)置的按鈕。圖3.7 手機(jī)客戶端主界面設(shè)計(jì)圖(3)PC端界面設(shè)計(jì):在PC端應(yīng)該可以對(duì)攝像頭的相關(guān)參數(shù)進(jìn)行設(shè)置的選項(xiàng)。同時(shí)為了充分利用屏幕空間,應(yīng)當(dāng)可以實(shí)現(xiàn)分屏播放功能。PC端界面如圖3.8所示:圖3.8 PC端設(shè)計(jì)圖3.4 系統(tǒng)功能需求和設(shè)計(jì)此移動(dòng)視頻監(jiān)控系統(tǒng)采集端實(shí)現(xiàn)的功能主要有:(1)采集端主界
49、面可以顯示服務(wù)器信息,采集端可設(shè)置調(diào)用前后攝像頭,可設(shè)置調(diào)用閃光燈,可設(shè)置采集視頻流的清晰度和分辨率。(2)手機(jī)客戶端可實(shí)現(xiàn)實(shí)時(shí)播放監(jiān)控視頻,并可以回放,暫停等功能。、系統(tǒng)采集端應(yīng)當(dāng)實(shí)現(xiàn)如下功能:首先可以進(jìn)行攝像頭的選擇,由用戶選擇使用前置或后置攝像頭。其次為了夜間監(jiān)控需要,用戶應(yīng)當(dāng)可以選擇是否使用閃光燈。 最后還應(yīng)當(dāng)可以設(shè)置視頻分辨率和幀數(shù)。(3)電腦客戶端可實(shí)現(xiàn)實(shí)時(shí)播放,暫停,回放等。電腦客戶端還可以實(shí)現(xiàn)二分屏播放,可以切換不同的視頻源,選擇不同的攝像頭播放不同的監(jiān)控畫面。3.5 算法選擇本視頻監(jiān)控系統(tǒng)選擇MPEG編碼技術(shù)和HTTP傳輸技術(shù)。相對(duì)于其他的編解碼技術(shù),MPEG技術(shù)可以獲得更清
50、晰的圖像質(zhì)量,互聯(lián)網(wǎng)通信技術(shù)飛速發(fā)展,網(wǎng)絡(luò)完全能夠滿足高清傳輸?shù)男枨?。因此選擇MPEG編碼技術(shù)。HTTP是無連接的傳輸技術(shù),可以減少傳輸延遲,因此選擇HTTP技術(shù)傳輸。3.6 本章小結(jié)本章首先介紹了本移動(dòng)視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)的可行性。然后描述了系統(tǒng)的結(jié)構(gòu)和組成,系統(tǒng)的界面需求設(shè)計(jì)和系統(tǒng)的功能需求設(shè)計(jì),最后介紹了系統(tǒng)實(shí)現(xiàn)的算法選擇。4 系統(tǒng)實(shí)現(xiàn)4.1 界面實(shí)現(xiàn)4.1.1 采集端界面模塊實(shí)現(xiàn)采集端界面實(shí)現(xiàn)效果如圖4.1,圖4.2所示:圖4.1 主界面實(shí)現(xiàn)圖圖4.2 設(shè)置界面實(shí)現(xiàn)圖(1)安卓軟件的設(shè)置界面模塊大部分都是從Preference Activity類繼承下來的。Preferences Acti
51、vity是Android中專門用來實(shí)現(xiàn)程序設(shè)置界面及參數(shù)存儲(chǔ)的一個(gè)Activity。而Shared Preferences是安卓系統(tǒng)提供的一個(gè)輕量級(jí)的存儲(chǔ)類,主要用于保存一些配置信息,比如窗口狀態(tài),還有一切其它無關(guān)緊要的配置,每次都即拿即用的數(shù)據(jù)。這里我們用Preferences Activity類和preferences.xml來實(shí)現(xiàn)添加設(shè)置按鈕功能??傮w思路是使用一個(gè)On create()方法來實(shí)現(xiàn)窗口更新,從而顯示服務(wù)器信息。OnCreate()是一個(gè)消息響應(yīng)函數(shù),是響應(yīng)WM_CREATE消息的一個(gè)函數(shù),而WM_CREATE消息是由Create函數(shù)進(jìn)行調(diào)用的。一個(gè)窗口創(chuàng)建之后,會(huì)向操作系
52、統(tǒng)發(fā)送WM_CREATE消息,OnCreate()函數(shù)主要是用來響應(yīng)此消息的。因?yàn)樵贛FC里面用一種消息映射的機(jī)制來響應(yīng)消息,也就是可以用函數(shù)來響應(yīng)相應(yīng)的消息。就拿CMainFrame類來說,當(dāng)窗口創(chuàng)建后會(huì)產(chǎn)生WM_CREATE消息,我們可以在OnCreate函數(shù)里實(shí)現(xiàn)我們要在窗口里面增加的東西,例如按扭,狀態(tài)欄,工具欄等。(2)在surfacepreview界面繪制完成后,調(diào)用addPreferencesFromResource()方法,更新界面,界面布局的設(shè)置在preferences.XMl文件中。Protected void onCreate (final Bundle savedIns
53、tanceState) Super.OnCreate(savedInstanceState);addPreferencesFromResource(R.xml.preferences);Preferences.xml中的設(shè)置如下:顯示設(shè)置界面中的攝像頭 android:key=camera android:title=攝像頭/顯示設(shè)置界面中的端口號(hào) android:key=port android:title=端口號(hào) android:inputType=number android:defaultValue=8080 / 顯示設(shè)置界面的視頻分辨率 android:key=size androi
54、d:title=視頻分辨率/ 顯示設(shè)置界面的視頻質(zhì)量 android:key=jpeg_quality android:title=視頻質(zhì)量 android:inputType=number android:defaultValue=40 /(3)利用setOnPreferenceClickListener()方法完成監(jiān)聽按下設(shè)置按鈕事件,當(dāng)按下攝像頭設(shè)置按鈕式時(shí),實(shí)現(xiàn)攝像頭選擇。SetOnPreferenceClickListener(new OnPreferenceClickListener() Override public boolean onPreferenceClick(Prefe
55、rence preference) setCameraPreferences(cameraPreference); return false;同理,視頻分辨率和閃關(guān)燈設(shè)置也是如此。SetOnPreferenceClickListener(new OnPreferenceClickListener() Override OnPreferenceClick(Preference preference) SetSizePreferences(sizePreference, cameraPreference); return false; 4.1.2 安卓端界面模塊實(shí)現(xiàn)(1)安卓布局介紹:安卓有五大布
56、局:線性布局,相對(duì)布局,幀布局,表格布局和絕對(duì)布局。線性布局,是5種布局最常用的一種,從字面上也比較好理解,就是布局呈線性的,這種布局在顯示組件的時(shí)候會(huì)默認(rèn)保持組件之間的間隔以及組件之間的互相對(duì)齊。線性布局顯示組件的方式有兩種方式:垂直和水平,是通過orientation來設(shè)定的。線性布局的常用屬性如下:android:orientation 表示布局方向,取值vertical表示垂直布局,取值horizontal表示水平布局,android:gravity 表示視圖的對(duì)齊方式。內(nèi)容包括:top、bottom、left、right、center_vertical、center_horizont
57、al等。布局中的視圖可以使用如下屬性android:layout_gravity 表示單個(gè)視圖的對(duì)齊方式,android:layout_weight 表示單個(gè)視圖所在大小的比重,當(dāng)layout_weight為0時(shí),視圖大小由自身確定,當(dāng)layout_weight大于0時(shí),視圖在線性布局方向上根據(jù)比重拉伸。這里我們的軟件采用線性布局設(shè)置,界面實(shí)現(xiàn)效果如圖4.3所示:圖4.3 手機(jī)客戶端實(shí)現(xiàn)圖(2)首先利用activity_main_demo.xml繪制界面視圖 完成界面繪制和按鈕設(shè)置。然后利用items = new ArrayList()方法在界面上添加可點(diǎn)擊鏈接。items.add(:8080
58、/*-攝像頭1-*/);items.add(:8080/*-攝像頭2-*/);items.add(:8080/*-攝像頭3-*/);items.add(:8080/*-攝像頭4-*/);items.add(:8080/*-攝像頭5-*/);即可完成整個(gè)主界面繪制。4.2 系統(tǒng)功能實(shí)現(xiàn)4.2.1 采集端預(yù)覽模塊實(shí)現(xiàn)(1)SurfaceViewSurfaceView是視圖(View)的繼承類,這個(gè)視圖里內(nèi)嵌了一個(gè)專門用于繪制的Surface。你可以控制這個(gè)Surface的格式和尺寸。Surfaceview控制這個(gè)Surface的繪制位置。你可以通過SurfaceHolder接口訪問這個(gè)Surfac
59、e,用getHolder()方法可以得到這個(gè)接口。當(dāng)surfaceview變得可見時(shí),surface被創(chuàng)建;surfaceview隱藏前,surface被銷毀。這樣能節(jié)省資源。如果你要查看 surface被創(chuàng)建和銷毀的時(shí)機(jī),可以重載surfaceCreated(SurfaceHolder)和 surfaceDestroyed(SurfaceHolder)。surfaceview的核心在于提供了兩個(gè)線程:UI線程和渲染線程。這里應(yīng)注意:所有SurfaceView和SurfaceHolder.Callback的方法都應(yīng)該在UI線程里調(diào)用,一般來說就是應(yīng)用程序主線程。渲染線程所要訪問的各種變量應(yīng)該作
60、同步處理。由于surface可能被銷毀,它只在SurfaceHolder.Callback.surfaceCreated()和SurfaceHolder.Callback.surfaceDestroyed()之間有效,所以要確保渲染線程訪問的是合法有效的surface。(2)SurfaceHolder SurfaceHolder是surface的抽象接口,可以控制surface的大小和格式, 以及在surface上編輯像素,和監(jiān)視surace的改變。這個(gè)接口通常通過SurfaceView類實(shí)現(xiàn)。3. SurfaceHolder.Callback用戶可以實(shí)現(xiàn)此接口接收surface變化的消息。當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025辦公家具租賃合同
- 2024年01月河北2024衡水銀行社會(huì)選聘行長副行長筆試歷年參考題庫附帶答案詳解
- 倉庫貨架合同范本
- 農(nóng)村流動(dòng)餐車出售合同范本
- 作者簽約合同范例
- 醫(yī)師兼職勞務(wù)合同范例
- 個(gè)人做飯合同范本
- 供熱承包經(jīng)營合同范例
- 內(nèi)退協(xié)議合同范例
- 保底銷售合同范例
- JTG 3362-2018公路鋼筋混凝土及預(yù)應(yīng)力混凝土橋涵設(shè)計(jì)規(guī)范
- 八年級(jí)下冊(cè)歷史思維導(dǎo)圖
- 電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)-編制說明
- 江蘇卷2024年高三3月份模擬考試化學(xué)試題含解析
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺(tái)及通道安全技術(shù)要求
- 醫(yī)療器械物價(jià)收費(fèi)申請(qǐng)流程
- 招聘專員轉(zhuǎn)正述職報(bào)告
- “一帶一路”背景下的西安市文化旅游外宣翻譯研究-基于生態(tài)翻譯學(xué)理論
- 2024年江蘇省昆山市六校中考聯(lián)考(一模)化學(xué)試題
- 大學(xué)生文學(xué)常識(shí)知識(shí)競賽考試題庫500題(含答案)
- 國家電網(wǎng)智能化規(guī)劃總報(bào)告
評(píng)論
0/150
提交評(píng)論