国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于MiniGUI的嵌入式媒體播放器設計與實現

發布時間:2010-12-17 23:01    發布者:conniede
關鍵詞: MiniGUI , 播放器
隨著嵌入式系統的不斷發展,處理器性能的不斷提升,存儲系統容量的不斷擴大,各種多媒體應用程序被移植到嵌入式系統中,多媒體組件成為其不可或缺的重要組成部分。本文在比較如今流行的幾種嵌入式圖形系統的基礎上,提出了基于MiniGUI的嵌入式媒體播放器的設計與實現方法。

1 引言

隨著嵌入式系統的不斷發展,處理器性能的不斷提升,存儲系統容量的不斷擴大,各種多媒體應用程序被移植到嵌入式系統中,多媒體組件成為其不可或缺的重要組成部分。嵌入式多媒體播放器的開發是當前 IT產業的熱點之一 ,呈現了巨大的市場需求。與些同時,播放器功能復雜化和普及化對產品的交互界面提出了更高的要求。現在許多高端手機和PDA 產品上已經有了多媒體播放器,可是和PC 機上的播放器相比現有的這些播放器的功能都有待進一步增強。

將現代窗口和圖形技術帶入到嵌入式設備的 MiniGUI,是一個非常適合于實時嵌入式設備的高效、可靠、可定制、小巧靈活的跨操作系統的圖形用戶界面支持系統。它采用類Win32的API接口,是一個多窗口GUI支持系統。本文首先比較各種嵌入式圖形系統,然后提出基于MiniGUI的嵌入式媒體播放器的設計與實現方法。

2 各種嵌入式圖形系統之比較

目前,流行的面向嵌入式系統的圖形系統有MicoroWindows/NanoX、Qt/Embedded、MiniGUI、DirectFB、PicoGUI以及GTK /FB等。它們中的大多數遵循LGPL條款發布,而MicoroWindows/NanoX遵循的是MGPL,Qt/Embedded采用QGPL條款發布。

MicroWindows/NanoX能夠在沒有任何操作系統或其他圖形系統的支持下運行,它能對裸顯示設備進行直接操作。這樣,MicroWindows就顯得十分小巧,便于移植到各種硬件和軟件系統上。然而MicroWindows/NanoX的免費版本開發進展慢,而且缺乏全面專業的技術支持。

Qt/Embedded功能強大,但是,由于它是基于C 類庫的,所以和其他GUI相比系統消耗資源較大,一般應用于手持式高端信息產品。

GTK /FB與Qt/Embedded類似,跳過X層直接與FrameBuffer溝通,也具有Qt/Embedded的幾項優點,但發展速度緩慢。

DirectFB是專注于Linux FrameBuffer加速的一個圖形庫,并試圖建立一個兼容GTK的嵌入式GUI系統。

PicoGUI是一種新型的小巧的嵌入式圖形系統。同X Windows系統一樣具有一個彈性的客戶服務端架構。PicoGUI將字體,位圖,窗口小部件,以及其他應用程序需要的東西都直接建立在服務器上,與X Windows相比,雖然靈活性有所降低,但速度顯著提升、體積大大縮小。

MiniGUI為實時嵌入式操作系統提供了非常完善的圖形及用戶界面支持。MiniGUI本身的可移植性設計,使得不論在哪個硬件平臺,哪種操作系統上運行,MiniGUI均能為上層應用程序提供一致的應用程序編程接口(API)。MiniGUI小巧、靈活且對中文的支持性最好。

3 設計與實現

3.1播放器總體結構

本文中的播放器采用MiniGUI作為底層圖形庫,用于生成用戶界面以及讀寫FrameBuffer。

播放器軟件總體結構如圖2所示,它主要由三部分組成,分別是圖形用戶界面模塊、系統管理主控模塊和音/視頻解碼器。三部分功能設計如下面所述:

圖形用戶界面模塊通過事件/消息機制和系統管理主控模塊交互。

音/視頻解碼器模塊可以看作是系統管理主控模塊的插件(plug-in),從系統管理主控模塊獲得編碼的音/視頻數據并對其解碼后發送己解碼的音/視頻數據給系統管理主控模塊。

系統管理主控模塊則負責網絡數據的接收和解析、圖形用戶界面模塊和音/視頻解碼器模塊的工作協調和音/視頻數據的輸出。這個模塊是播放器軟件中非常重要的一個模塊。

3.2 用戶圖形界面設計

MiniGUI提供了豐富的GUI元素,如常見的控件類、對話框與消息框以及菜單等,此外,MiniGUI支持界面皮膚。因此,利用MiniGUI可以非常方便地設計出漂亮的用戶圖形界面。

播放器的人機交互界面主要包括播放控制與文件列表管理兩大部分。播放控制用來實現對所選擇的媒體文件作播放/暫停、停止及進度控制等;文件列表管理則用來實現向播放列表添加、刪除媒體文件以及對列表中文件排序等功能。

3.3 主要函數及具體實現

⑴ 播放控制事件回調函數

static int main_event_cb (HWND hwnd, skin_item_t* item, int event,
void* data)

{ …

if (event==SIE_BUTTON_CLICKED) {

switch (item->id) {

case SIID_PLAY:



case SIID_PAUSE:



case SIID_STOP:



case SIID_CLOSE:



}

}

else if (event==SIE_SLIDER_CHANGED && item->id!=SIID_VOLUME)

{



}

return 1;

}

⑵ 列表事件處理函數

void playlist_handle_event(PEvent *event, void *data)

{



switch(event->type) {

case ButtonPress:



case ButtonRelease:



case KeyPress:

if(!playlist)

return;

mykeyevent = event->xkey;

LockDisplay(gGui->display);

len=LookupString(&mykeyevent, kbuf, sizeof(kbuf), &mykey, NULL);

UnlockDisplay(gGui->display);

switch (mykey) {

case K_Down:

case K_Next:

browser_step_up(playlist->playlist, NULL);

break;

case K_Up:

case K_Prior:

browser_step_down(playlist->playlist, NULL);

break;

default:

gui_handle_event(event, data);

break;

}

break;

case MappingNotify:

LockDisplay(gGui->display);

RefreshKeyboardMapping((MappingEvent *)event);

UnlockDisplay(gGui->display);

break;

}

}

⑶ 主函數

int MiniGUIMain(int argc, const char* argv[])

{



PlayerHandle=PlayerNew();



free(buffer);

PlayerGetInfo(PlayerHandle, &fi);



InitCreateInfo(&CreateInfo);

hMainWnd=CreateMainWindow(&CreateInfo);

if (hMainWnd==HWND_INVALID)

return -1;



while( GetMessage(&Msg, hMainWnd) )

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);



}

PlayerClose(PlayerHandle);



MainWindowThreadCleanup(hMainWnd);

return 0;

}

4 結束語

隨著嵌入式系統硬件性能的不斷提升,用戶對應用程序界面的友好性和功能的完備性提出了更高的要求。本文介紹的基于MiniGUI的嵌入式媒體播放器具有設計簡單,占用系統資源少等特點,可作為開發基于嵌入式圖形界面系統的應用軟件的參考。
本文地址:http://m.qingdxww.cn/thread-47012-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 男女视频免费网站 | 亚洲最大福利视频 | 精品成人一区二区三区免费视频 | 91免费国产视频 | 99r8这是只有精品视频9 | 男人天堂新 | 日本亚洲一区二区三区 | 五月伊人网 | 三级毛片免费 | 久久精品一区二区国产 | 日本色站 | 成年女美黄网站大全免费播放 | 日本国产亚洲 | 可以免费在线看黄的网站 | 免费一级片在线观看 | 久久久黄色大片 | 欧美日韩精品一区二区另类 | 99精品国产第一福利网站 | 青青青手机在线视频 | 日本高清高色 | 久久国产偷 | 亚洲国产日韩欧美一区二区三区 | 国产精品毛片在线完整版sa | 99久久香蕉 | 欧美高清360 | 日本免费高清在线观看播放 | 国产精品黄页在线播放免费 | 性生交大片免费一级 | 五月天精品在线 | 永久网站色视频在线观看免费 | 99久久免费国产精精品 | 毛片高清一区二区三区 | 国产在线精品一区二区高清不卡 | 全国最大色成免费网站 | 久久青青草原精品影院 | 久久成人激情视频 | 亚洲人成网站在线观看播放动漫 | 精品精品国产欧美在线观看 | aaaaaaa毛片| 香蕉视频一区二区三区 | 国产成人精品免费 |