freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于android手機的音視頻監(jiān)控軟件的設(shè)計與實現(xiàn)-資料下載頁

2024-12-03 19:40本頁面

【導讀】社會在發(fā)展,科技在發(fā)展,安全防范工作已經(jīng)不僅僅是人類的工作。用自己的聰明才智創(chuàng)造出各種協(xié)助安全防范工作的物品。其中,視頻監(jiān)控系統(tǒng)已。是安防工作里不可缺少的一部分?,F(xiàn)在,社會治安形勢依然嚴峻,隨處可見監(jiān)控。器的身影,如馬路、學校等公共場所。然而,有些場合如私家車內(nèi),住宅內(nèi)沒有。安裝監(jiān)控,而有時候又需要監(jiān)控,此時,我們可以利用安卓手機來達到目的。軟件實現(xiàn)的主要功能。程實現(xiàn)對音頻以及圖像傳輸。本軟件設(shè)計在安卓平臺上進行的。操作系統(tǒng)、用戶界面、應(yīng)用程序是安卓系。開放性以及應(yīng)用程序開發(fā)快速方便。安卓開發(fā)基于java技術(shù),而Java語言為一。種全功能平臺編程語言,如今深受大家歡迎?,F(xiàn)在最流行的安卓開發(fā)模式是以java上主流的開發(fā)工具Eclipse. 作為基礎(chǔ)通過集成ADT插件,來更好的支持安卓程序開發(fā)和調(diào)試工作。

  

【正文】 狀態(tài)再調(diào)用 start()方法使他開始播放;我們能用 Pause()方法暫停播放, MediaPlayer 在暫停的狀態(tài)后,倘若要還原到播放狀態(tài),只要直接調(diào)用 start()方法就 行; 播放是否要循環(huán),通過對 MediaPlaye 對象設(shè)置 setLooping( boolean)方法即可。 MediaPlayer 在安卓中完成媒體播放工作,運用 MediaPlayer 完成音頻以及視頻的播放的主要基本環(huán)節(jié)有: 1)生成 MediaPlayer 對象,依照播放文件所位于的不一樣的位置使用不一樣的生成方式。 沈陽航空航天大學畢業(yè)設(shè)計(論文) 23 2)在得到 MediaPlayer 之后,可以依據(jù)當時不同的現(xiàn)實情況需要而去調(diào)用不同的方法,如 start()、 stop()、 pause()等。 有一點是必須關(guān)注的是,在沒有必要播放的情況下,我們 應(yīng)該及時釋放掉和MediaPlayer 對象相關(guān)連的播放文件。 其常用的方法有如表 所示: 表 MediaPlayer 的常用方法 本程序設(shè)計中,把錄制下來的視頻,能通過文件瀏覽手機目錄下的 RecVideo目錄,再點擊選擇播放的視頻文件實現(xiàn)播放功能。具體實現(xiàn)使用到了視頻播放的類 MediaPlayer 和用于繪圖的 SurfaceView 組件,該組件將需要顯示的圖像(視方法 方法描述 Create() 創(chuàng)建 MediaPlayer 對象 getCurrentPostion() 獲取當前播放位置 getDuration() 獲取媒體時間長度 getVideoHeight() 獲取視頻高度 getVideoWidth() 獲取視頻高度 isLooping() 是否循環(huán) isPlaying() 是否正在播放 Pause() 暫停 播放 Prepare() 準備播放同步 prepareAsync() 準備播放異步 Reset() 重置 MediaPlayer 對象 seekTo() 指定播放位置 setDatesource() 設(shè)置媒體數(shù)據(jù)來源 setLooping() 設(shè)置是否循環(huán)播放 setOnBuffingUpdateListenner() 設(shè)置網(wǎng)絡(luò)流媒體緩沖監(jiān)聽器 setOnErrorListener() 設(shè)置錯誤信息監(jiān)聽器 Release() 釋放 MediaPlayer 對象 setAudioStreamType() 設(shè)置音頻流信息 setOnVideoSizeChangedListener() 設(shè)置視頻尺寸改變監(jiān)聽器 setVolume() 設(shè)置音量大小 Start() 開始播放 Stop() 停止播放 沈陽航空航天大學畢業(yè)設(shè)計(論文) 24 頻)通過在屏幕上一個個的畫面繪制并顯示。由于本程序中,視頻具 有斷點播放功能,在視頻播放前,首先應(yīng)獲取當前視頻的播放時間,在播放停止或者退出播放時,都應(yīng)該將播放的當前時間、總時間還有視頻的存儲路徑等保存進數(shù)據(jù)庫里面。實現(xiàn)視頻播放具體功能步驟如下: ( 1)在準備播放這個階段,首先通過獲取 MediaPlayer 類實例,設(shè)置視頻播放源路徑;組件 SurfaceView 的實體對象 surface 通過對 SurfaceHolder 這個接口封裝的 getHolder()方法的調(diào)用來訪問。由于程序在銷毀的時候 ,surface 也會被銷毀,所以銷 毀之前, 需要 SurfaceHolder 實現(xiàn) Callback 接 口且在surfaceDestroyed(...)方法中開啟一個服務(wù)將需要保存的數(shù)據(jù)保存下來。具體代碼實現(xiàn)如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 25 (2)開始播放視頻,封裝了 startPlay(...) ,主要做了播放前的初始化、 獲取播放時間、設(shè)置播放狀態(tài)等工作,具體核心代碼實現(xiàn)如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 26 進度條 本設(shè)計要求顯示當前播放時間以及最大播放時間以及快進、快退的功能。我通過使用 Seekbar 實現(xiàn)這幾項功能。 Seekbar 也就是可拖動的進度控件,我們可以將他拖動改變他方位置從而變動他的值。他廣泛用于媒體播放器當中,他不 但顯示媒體播放的速度,還允許用戶拖動進而跳過某段視頻而繼續(xù)播放后面的內(nèi)容。用戶要拖動 Seekbar,首先要對他進行事件監(jiān)聽包括的動作有:開始拖動( OnStartTrackingTouch)、改變數(shù)值( onProgressChanged )以及停止拖動( onStopTrackingTouch)。 下面具體描述程序如何實現(xiàn)這幾個功能: ( 1) 每次播放時,程序會開辟一條線程去獲取當前的視頻播放時間,核心代碼實現(xiàn)如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 27 代碼中,使用到了線程和 Handler 一起使用,當發(fā)送消息后,具體 UI 更新需要在 handlerMessage(...)方法中處理。具體核心代碼實現(xiàn)如下: ( 2) 點擊播放界面的快進按鈕,實現(xiàn)快進功能,程序中設(shè)定每次快進 5 秒,具體核心代碼實現(xiàn)如下: ( 3) 點擊播放界面的快退按鈕,實現(xiàn)快退功能,程序每次快退時間同樣設(shè)沈陽航空航天大學畢業(yè)設(shè)計(論文) 28 定為 5 秒,具體核心代碼實現(xiàn)如下: 其中 temp 變量表示是當前播放進度條 Seekbar 的位置,每點擊一次快進則將進度條往前 5 秒,反之則往后 5 秒,從而實現(xiàn)快進和快退的功能。 屏幕縮放 本程序中,在視頻播放界面可以實現(xiàn)選擇屏幕縮放比例,主要通過改變布局中 SurfaceView 的 layout 的大小來實現(xiàn)視頻 的全屏、 4:3 和 20: 9 的屏幕縮放比例。 封裝的 ChangeSize(...)主要實現(xiàn)了設(shè)置 layout 大小后更新視圖。具體核心代碼是實現(xiàn)如下: 通過選擇視屏播放界面的縮放比例按鈕設(shè)定不同的寬,高,實現(xiàn)不同屏幕比例的切換效果。具體核心代碼實現(xiàn)如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 29 數(shù)據(jù)存儲模塊 數(shù)據(jù)庫的存儲主要實現(xiàn)保存視頻播放歷史,當下次進行視頻播放的時候、可以從上次播放到的位置進行播放,從而實現(xiàn)斷點播放功能。程序中主要使用了開啟一個服務(wù)來完成對視頻當前播放時間、視屏播放路徑以及視屏總時長的保存。所以視頻播放表的設(shè)計比較簡單 ,主要包括有一個視頻播放路徑( path)、當前播放時間 playtime 和播放總時間 sumtime。視頻播放實體屬性圖如下圖 所示: 視 頻 播 放當 前 播 放 時 間視 頻 總 時 長視 頻 播 放 路徑 圖 視頻播放實體圖 沈陽航空航天大學畢業(yè)設(shè)計(論文) 30 視頻播放基本信息表( recorder)的設(shè)計,主要用來保存當前播放時間,視頻總時長以及視頻的播放路徑基本信息。如表 所示: 表 ( OTHER_WEIBO_TABLE) 程序中,在 MyOpenHelper 類中,主要實現(xiàn)了數(shù)據(jù)庫表的創(chuàng)建;在GetRecoderService 服務(wù)中,該類主要打開數(shù)據(jù)庫,封裝了實現(xiàn)數(shù)據(jù)查詢,插入和更新的方法。在 onBind( ...)方法中,將獲取視頻播放的基本數(shù)據(jù),通過傳來的標志進行判斷執(zhí)行數(shù)據(jù)庫的插入還是更新操作。具 體核心代碼實現(xiàn)如下: 屬性名稱 屬性類型 長度 屬性含義 說明 id INTEGER NOT 表的自增 id 主鍵 playtime INTEGER NOT 當前播放時間 外鍵 sumtime INTEGER NOT 視頻總時長 外鍵 path VARCHAR NOT 視頻播放路徑 外鍵 沈陽航空航天大學畢業(yè)設(shè)計(論文) 31 其中使用 insertRecorder(...)方法,主要完成數(shù)據(jù)庫中的插入操作。具體代碼實現(xiàn)如下: searchByPath(...)方法,通過視頻播放路徑查找視頻的播放時間以及播放總時間。具體代碼設(shè)計如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 32 searchAll(...)方法,主要功能查找數(shù)據(jù)庫中所有的視頻,獲取視頻的基本信息。具體代碼實現(xiàn)如下: 數(shù)據(jù)傳輸模塊 本次設(shè)計的軟件要實現(xiàn)數(shù)據(jù)的傳輸功能而主要利用的是 UDP/IP 協(xié)議。此模塊以一個手機作為數(shù)據(jù)文件導出端也就 是服務(wù)器端,另一個手機作為數(shù)據(jù)接收端也就是客戶端,利用 UDP 來實現(xiàn)文件傳輸。因為 UDP 會出現(xiàn)丟包的情況,所以Server 和 Client 的通訊就要有來回包確認。當服務(wù)器接收到廣播之后,他就會對客戶端的的請求信息作出回應(yīng),把這個包 IP 發(fā)送給客戶端(這個確定的 IP 地址能從 UDP 廣播信息包里得到)。當客戶端得到服務(wù)器的響應(yīng),然后就向服務(wù)器指定 IP 請求,即要傳輸?shù)奈募目倲?shù)目以及總?cè)萘?。服?wù)器接收到客戶端的請求,計算 SOURCEPATH 里全部文件數(shù)量以及總?cè)萘?,發(fā)送給確定 IP 地址的客沈陽航空航天大學畢業(yè)設(shè)計(論文) 33 戶端。客戶端得到了所有文件總數(shù)量以 及總?cè)萘亢?,再通過請求服務(wù)器來發(fā)送文件的詳細的實際的內(nèi)容。相關(guān)功能核心代碼實現(xiàn)如下: ( 1) 數(shù)據(jù)導出類 ServerUdp,該類主要實現(xiàn)服務(wù)端將錄制的視頻進行導出。功能核心代碼具體實現(xiàn)如下: 由于網(wǎng)絡(luò)數(shù)據(jù)傳輸是長時間的耗時操作,不能讓它阻礙主線程 UI,所以開辟了線程來解決,數(shù)據(jù)的傳輸處理主要在 run 方法中實現(xiàn)。具體核心代碼如下 : ( 2)數(shù)據(jù)導入類 ClientUdp,該類同樣開辟了線程來實現(xiàn)將服務(wù)器端傳輸?shù)囊曨l文件進行 UDP 接收。主要功能實現(xiàn)核心代碼如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 34 其中 UDP 數(shù)據(jù)接收主要于所開辟線程的 run()方法里面完成。具體實現(xiàn)核心代碼如下: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 35 5 系統(tǒng)的測試與結(jié)論 一個軟件是否成功設(shè)計,需要通過認證才可以得到答案。進行軟件測試是軟件在設(shè)計與實現(xiàn)中的一個必不可少的工作環(huán)節(jié)。在測試過程中會遇到一些問題,發(fā)現(xiàn)這些問題,解決這些問題,從而完善軟件,保證其在各種邊界條件下的高效性、準確性、強壯性。使其更好的投入生產(chǎn)生活中。 整體用戶界面測試 在安卓手機上安裝上本次設(shè)計的音視頻監(jiān)控軟件。點擊軟件圖標,進入到軟件總界面,可以看到幾個功能按鈕,他們分別是音視頻錄制按鈕、我的文件按鈕、無線傳輸按鈕、 播放歷史按鈕、以及右上角圖標。具體如圖 : 圖 軟件總菜單 點擊各按鈕,可以實現(xiàn)相應(yīng)的功能。 在主菜單的界面右上角可以看到圖標 ,點擊圖標,可以改變背景,可選沈陽航空航天大學畢業(yè)設(shè)計(論文) 36 擇的背景圖像有 4 種 :具體情況如圖 所示: 圖 背景圖變換圖 音視頻錄制功能測試 點擊 “音視頻錄制 ”按鈕,軟件進入錄制界面,在此界面下會有五個按鈕,分別是 “設(shè)置 ”、 “設(shè) ”、 “開始 ”、 “結(jié)束 ”、 “返回 ”。具體布局如圖 所示: 圖 錄制界面圖 點擊 “開始 ”按鈕,就可以直接進行監(jiān)控錄制,當需要結(jié)束監(jiān)控錄制的時候,我們只要點擊 “結(jié)束 ”按鈕即可。如果要瀏覽錄制的監(jiān)控視頻文件,點擊 “返回 ”按沈陽航空航天大學畢業(yè)設(shè)計(論文) 37 鈕,就可以返回到主菜單。 點擊 “設(shè) ”這個按鈕,就可以實現(xiàn)定點開始錄制,因為,在有些時間段我們不需要監(jiān)控,這個時候利用定點錄 制功能,就可以在這里設(shè)置我們想要監(jiān)控的開始時間點即可,點擊界面里 “設(shè)置時間 ”按鈕,其具體設(shè)置的界面如圖 所示: 圖 時間設(shè)置圖 界面最上端的數(shù)字為當時的時間,點擊設(shè)置時間即可設(shè)置當前要開始錄 的時間點,設(shè)置完成后左下角顯示將要開始錄制的時間點,點擊 “確定 ”按鈕,定點監(jiān)控錄制視頻設(shè)置成功具體如圖 所示: 沈陽航空航天大學畢業(yè)設(shè)計(論文) 38 圖 時間點定時錄制 本次設(shè)置時間為 23: 46:32,即將開始錄 制的時間點為 23:47,其錄制情況顯示功能實現(xiàn)如圖 所示: 圖 定點錄制視頻圖 通過點擊 “設(shè)置 ”按鈕,就能設(shè)置時間段監(jiān)控錄制。點擊下拉列表,可以設(shè)置沈陽航空航天大學畢業(yè)設(shè)計(論文) 39 分別以秒、分、小時為單位的時間段。具體 實現(xiàn)情況如圖 所示: 圖 時間段錄制圖 為了較快的看到測試效果,本次設(shè)置錄制的時間段是 17 秒。當錄制到 17秒時,系統(tǒng)自動停止錄制,并顯示 “錄制視頻由于已超過最長時間,自動停止! ”,如圖 所示: 圖 時間段錄制圖 視頻存儲功能測試 錄制完視頻后,可以在我的文件里找到錄制的視頻視頻路徑為 “我的文件—system—Recvideo”點擊 Recvideo 按鈕,我們可以看到錄制的文件,具體情 況沈陽航空航天大學畢業(yè)設(shè)計(論文) 40 如圖 所示: 圖 文件存儲情況圖 如圖所示,本次測
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1