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