- 相關(guān)推薦
基于minigui的網(wǎng)真機(jī)界面的實(shí)現(xiàn)
1 前言
近年來,網(wǎng)絡(luò)發(fā)展不斷成熟,互聯(lián)網(wǎng)的用戶越來越多,這樣成熟的環(huán)境使得基于網(wǎng)絡(luò)的音視頻通信技術(shù)不斷發(fā)展,基于該技術(shù)的產(chǎn)品不斷豐富,網(wǎng)真機(jī)正是一款基于網(wǎng)絡(luò)的音視頻通信設(shè)備。Minigui 是北京飛漫軟件技術(shù)有限公司開發(fā)的一款開源的linux 圖形用戶界面支持系統(tǒng),廣泛應(yīng)用于通信,工控,機(jī)頂盒等領(lǐng)域。本文主要介紹基于minigui 的網(wǎng)真機(jī)界面的實(shí)現(xiàn)方式,以下先介紹網(wǎng)真機(jī)所涉及的技術(shù)。
2 網(wǎng)真機(jī)的軟件基礎(chǔ)
2.1 網(wǎng)真機(jī)系統(tǒng)
網(wǎng)真機(jī)所使用的系統(tǒng)為嵌入式linux 系統(tǒng),該系統(tǒng)是以linux 為基礎(chǔ)的嵌入式作業(yè)系統(tǒng),目前被廣泛應(yīng)用在移動電話,個人數(shù)字助理,媒體播放器等產(chǎn)品中。選用嵌入式linux 系統(tǒng)是由于該系統(tǒng)具有許多特點(diǎn),首先由于linux 是開放源代碼的,這使得該系統(tǒng)在針對不同的設(shè)備具有極強(qiáng)的可移植性。其次,linux 系統(tǒng)非常穩(wěn)定,這對于網(wǎng)真機(jī)而言尤為重要。第三,linux 系統(tǒng)內(nèi)核小,效率高,對于網(wǎng)真機(jī)而言,系統(tǒng)自身的大小與效率關(guān)系到開發(fā)成本和使用流暢性。
正是具有以上優(yōu)點(diǎn),使得我們選用linux 做為網(wǎng)真機(jī)的操作系統(tǒng),同時,由于linux 系統(tǒng)的開源性,使得基于該系統(tǒng)的軟件非常豐富,網(wǎng)真機(jī)中所涉及的通信軟件正是在linux 系統(tǒng)中安裝的linphone,該軟件是基于sip 協(xié)議的一款優(yōu)秀的音視頻通信軟件。
2.2 Linphone
Linphone[3]是一款基于WEB 的IP 電話軟件,版本非常豐富,可以運(yùn)行于Linux 和Windows 系統(tǒng)中。網(wǎng)真機(jī)中所使用的通信軟件正是運(yùn)行于linux 系統(tǒng)中的linphone。通過該軟件,我們可以使用網(wǎng)真機(jī)在互聯(lián)網(wǎng)上進(jìn)行語音與視頻通話,甚至可以進(jìn)行即時消息及文件傳送。Linphone 是遵循SIP[1][2]協(xié)議開發(fā)的,因而需要和支持SIP 協(xié)議的終端或代理服務(wù)器進(jìn)行相互操作。Linphone 是開源免費(fèi)軟件,不但可以自由下載,也可以根據(jù)自己的需要而做相應(yīng)的修改。
2.3 Mplayer
Mplayer 是Linux 上的電影播放器,它可以播放MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,F(xiàn)LI,RM,NuppelVideo,yuv4mpeg,F(xiàn)ILM,RoQ 格式的文件。在網(wǎng)真機(jī)中,不但可以實(shí)現(xiàn)音視頻通話的功能,還可以通過網(wǎng)絡(luò)或是掛載設(shè)備來實(shí)現(xiàn)播放電影的功能,這一功能的實(shí)現(xiàn),正是依賴于Mplayer 強(qiáng)大的播放能力。另外,由于Mplayer 也是開源軟件,也可以對它進(jìn)行修改,這對網(wǎng)真機(jī)對其控制至關(guān)重要。
2.4 minigui
minigui 為嵌入式linux 系統(tǒng)提供完整的圖形系統(tǒng)支持,網(wǎng)真機(jī)正是通過minigui 來控制系統(tǒng)中的各種模塊,進(jìn)而實(shí)現(xiàn)不同的功能。例如,當(dāng)進(jìn)行視頻通話的時候,需要通過minigui中的相應(yīng)操作來調(diào)用linphone,進(jìn)而通過linphone 進(jìn)行通話。下面將具體介紹網(wǎng)真機(jī)中通過minigui 控制各模塊的過程。
3 基于Minigui 的控制界面的設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)功能需求分析
網(wǎng)真機(jī)需要具有音視頻通話功能,在音視頻通話過程中,還需要具備通信錄的功能,通過通信錄可以存儲常用的號碼,這樣可以更方便的進(jìn)行呼叫。同時,網(wǎng)真機(jī)還具備播放電影的功能,可以播放本地的或是外接存儲設(shè)備中的視頻文件。另外,還需要根據(jù)不同的環(huán)境,對網(wǎng)真機(jī)進(jìn)行相應(yīng)的設(shè)置,例如設(shè)置聯(lián)網(wǎng)方式,設(shè)置linphone 中的一些參數(shù)等等。框架圖所示。效果所示。
3.2 minigui 的程序設(shè)計(jì)
3.2.1 主界面的設(shè)計(jì)
根據(jù)上面的分析,minigui[4]的主界面中需要設(shè)計(jì)五個選項(xiàng),分別為通信錄,網(wǎng)視傳真,電影播放,系統(tǒng)設(shè)置,安全關(guān)機(jī)。Minigui 程序中的消息機(jī)制和窗口過程是程序的基石和框架,貫穿于Minigui 的應(yīng)用程序中。在程序中包含著主事件循環(huán),它負(fù)責(zé)輪詢用戶觸發(fā)的事件,當(dāng)用戶觸發(fā)事件后,事件經(jīng)過Minigui 轉(zhuǎn)換成一個消息,然后在窗口過程函數(shù)中針對不同的消息進(jìn)行相應(yīng)的處理。
在主界面中,可觸發(fā)的事件分別為五個選項(xiàng),程序在不斷的監(jiān)聽,當(dāng)有按鍵消息觸發(fā)時,則進(jìn)入MSG_KEYDOWN 事件,然后判斷按鍵信息,在主界面中,有效的按鍵為左右鍵和確認(rèn)鍵,通過左右鍵來轉(zhuǎn)到相應(yīng)的二級界面入口,通過確認(rèn)鍵來進(jìn)入二級界面。在主界面中使用五張不同的圖片來表示不同的二級界面的入口。通過標(biāo)志來記錄所需要的圖片,然后InvalidateRect 函數(shù)全部清空當(dāng)前界面下的所有圖片,之后程序會進(jìn)入MSG_PAINT 事件,在這一事件中,程序會通過FillBoxWithBitmap 函數(shù)來對界面進(jìn)行重構(gòu),由于之前有記錄圖片的標(biāo)記,在重構(gòu)中,通過標(biāo)記來選擇需要的圖片。這樣,一次二級界面入口的轉(zhuǎn)換過程就完成了。之后通過確認(rèn)鍵來調(diào)用相應(yīng)的二級界面。
3.2.2 通信錄界面的設(shè)計(jì)
在通信錄中,使用了列表框控件,以及代表確認(rèn)和退出的兩張按鈕圖片,列表框是minigui 所提供的空間,在該界面中,使用兩列列表,分別為姓名和號碼。在從主菜單進(jìn)入到該界面時,主菜單位于該界面后面,也就是說,兩個界面是重疊排放的。同時,從數(shù)據(jù)庫中讀出儲存的姓名和電話,然后顯示在列表框中。
用戶在操作的過程中,通過上下鍵來選擇所需要的電話,然后通過右鍵來選擇確認(rèn)和退出,當(dāng)選擇確認(rèn)時。會向當(dāng)前界面發(fā)送KEY_CANCEL 消息來關(guān)閉當(dāng)前界面,同時向主界面發(fā)送消息啟動網(wǎng)視傳真界面,同時將先前選擇好的電話號碼復(fù)制到網(wǎng)視傳真界面中。
3.2.3 網(wǎng)視傳真界面的設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)視傳真界面是用戶發(fā)起呼叫的界面,該界面包括一個輸入框、一個確認(rèn)按鈕以及一個退出按鈕,用戶在輸入框中輸入對方的網(wǎng)真號,然后選擇確認(rèn)按鈕開始呼叫。
在呼叫的過程中,需要將該號碼傳入到linphone 中,然后由linphone 進(jìn)行呼叫,上文中提到,linphone 是一款開源軟件,可以進(jìn)行必要的修改。在進(jìn)行傳遞號碼的過程中,就需要對linphone 進(jìn)行些修改。由于linphone 和minigui 在網(wǎng)真機(jī)中均為安裝在嵌入式linux 系統(tǒng)中的程序,因而可以使用進(jìn)程間的通信來將號碼傳入linphone 中,通過在minigui 和linphone的源代碼中加入消息隊(duì)列來進(jìn)行號碼傳入。通話結(jié)束或者無人接聽時,linphone 再通過消息隊(duì)列傳遞給minigui 相應(yīng)的消息,minigui 通過MessageBox 函數(shù)來產(chǎn)生對話框,告知用戶相應(yīng)的信息。
3.2.4 電影播放界面的設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)真機(jī)不但可以進(jìn)行音視頻通話,還具有播放電影的功能,這依賴于在嵌入式linux 系統(tǒng)中安裝的Mplayer 播放器,而想要用minigui 界面來控制電影的播放、停止、暫停的話,那就需要對Mplayer 做必要的修改,同樣的,在Mplayer 的源程序中添加消息隊(duì)列,這樣,在minigui 中按下對應(yīng)的按鈕,程序?qū)ㄟ^消息隊(duì)列給Mplayer 發(fā)送消息,而經(jīng)過改造后的Mplayer 會認(rèn)為用戶下達(dá)了控制命令,這樣就可以控制電影的播放進(jìn)度了。
在該界面的設(shè)計(jì)中,需要一個列表框來顯示當(dāng)前存儲路徑中的電影,同時,需要三個按鈕來表示所選擇的存儲設(shè)備,即本地存儲,網(wǎng)絡(luò)存儲和USB 設(shè)備存儲。另外,還需要四個按鈕來表示開始播放、暫停、停止、退出這四個命令。當(dāng)按下播放時,程序調(diào)用system 函數(shù)來啟動Mplayer 程序,這時候電影開始播放;當(dāng)按下暫停鍵或退出鍵后,通過消息隊(duì)列傳遞給Mplayer 暫;蛲顺雒,Mplayer 進(jìn)行相應(yīng)的操作。
3.2.5 系統(tǒng)設(shè)置界面的設(shè)計(jì)和實(shí)現(xiàn)
由于環(huán)境差異,需要對網(wǎng)真機(jī)做必要的設(shè)置,因此需要設(shè)計(jì)一個設(shè)置界面。在該界面中,需要使用一個列表框,列表框中包含了設(shè)置選項(xiàng)。主要有網(wǎng)真機(jī)的號碼設(shè)置,服務(wù)器的IP地址設(shè)置,用戶名設(shè)置和密碼設(shè)置。
由于這些設(shè)置都是為linphone 進(jìn)行的,而在linphone 中具有存儲這些設(shè)置的文件,該文件名為.linphonerc,因此,只要通過修改該文件就可達(dá)到設(shè)置的目的。在這里,通過將該文件的內(nèi)容讀入到數(shù)組中,然后修改該數(shù)組,再將新數(shù)組寫入該文件,就可以修改成功。
4 總結(jié)
網(wǎng)真機(jī)基于嵌入式linux 系統(tǒng),通過minigui 將linphone、Mplayer 等開源軟件修改并組合,從而構(gòu)建了網(wǎng)真機(jī)的軟件結(jié)構(gòu)。本文主要介紹了網(wǎng)真機(jī)界面的設(shè)計(jì)與實(shí)現(xiàn)過程,這對同類型產(chǎn)品的設(shè)計(jì)和開發(fā)具有參考意義。
中國碩士論文網(wǎng)提供大量免費(fèi)碩士畢業(yè)論文,如有業(yè)務(wù)需求請咨詢網(wǎng)站客服人員!
參考文獻(xiàn)
[1] 張智江,張?jiān)朴?劉韻潔著.SIP 協(xié)議及其應(yīng)用[M].電子工業(yè)出版社,2005.
[2] 周海華, 邊恩炯等編著.SIP 原理與應(yīng)用[M].機(jī)械工業(yè)出版社, 2006.
[3] MiniGUI Tech White Paper.
【基于minigui的網(wǎng)真機(jī)界面的實(shí)現(xiàn)】相關(guān)文章:
基于圖像的OMR技術(shù)的實(shí)現(xiàn)03-07
嵌入式Linux下基于MiniGUI的信息終端軟件開發(fā)03-18
基于XMLSchema的元數(shù)據(jù)方案實(shí)現(xiàn)03-21
基于LabVIEW的GMSK調(diào)制與解調(diào)實(shí)現(xiàn)03-07
基于FPGA的HDLC通信模塊的實(shí)現(xiàn)05-14
基于Perl的DoS工具設(shè)計(jì)與實(shí)現(xiàn)03-10
基于PQRM的PACS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-07