www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于MiniGUI的嵌入式媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)

摘要隨著嵌入式系統(tǒng)的不斷發(fā)展,處理器性能的不斷提升,存儲(chǔ)系統(tǒng)容量的不斷擴(kuò)大,各種多媒體應(yīng)用程序被移植到嵌入式系統(tǒng)中,多媒體組件成為其不可或缺的重要組成部分。本文在比較如今流行的幾種嵌入式圖形系統(tǒng)的基礎(chǔ)上,提出了基于MiniGUI的嵌入式媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)方法。
關(guān)鍵詞嵌入式系統(tǒng);嵌入式圖形系統(tǒng);MiniGUI;媒體播放器

1 引言

  隨著嵌入式系統(tǒng)的不斷發(fā)展,處理器性能的不斷提升,存儲(chǔ)系統(tǒng)容量的不斷擴(kuò)大,各種多媒體應(yīng)用程序被移植到嵌入式系統(tǒng)中,多媒體組件成為其不可或缺的重要組成部分。嵌入式多媒體播放器的開發(fā)是當(dāng)前 IT產(chǎn)業(yè)的熱點(diǎn)之一 ,呈現(xiàn)了巨大的市場(chǎng)需求。與些同時(shí),播放器功能復(fù)雜化和普及化對(duì)產(chǎn)品的交互界面提出了更高的要求?,F(xiàn)在許多高端手機(jī)和PDA 產(chǎn)品上已經(jīng)有了多媒體播放器,可是和PC 機(jī)上的播放器相比現(xiàn)有的這些播放器的功能都有待進(jìn)一步增強(qiáng)。

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

 

2 各種嵌入式圖形系統(tǒng)之比較

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

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

Qt/Embedded功能強(qiáng)大,但是,由于它是基于C++類庫的,所以和其他GUI相比系統(tǒng)消耗資源較大,一般應(yīng)用于手持式高端信息產(chǎn)品。

GTK+/FB與Qt/Embedded類似,跳過X層直接與FrameBuffer溝通,也具有Qt/Embedded的幾項(xiàng)優(yōu)點(diǎn),但發(fā)展速度緩慢。

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

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

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

 

3 設(shè)計(jì)與實(shí)現(xiàn)

3.1播放器總體結(jié)構(gòu)

本文中的播放器采用MiniGUI作為底層圖形庫,用于生成用戶界面以及讀寫FrameBuffer。基于MiniGUI的嵌入式系統(tǒng)總體架構(gòu)如圖1所示。


圖1 基于MiniGUI的嵌入式系統(tǒng)總體架構(gòu)

 

播放器軟件總體結(jié)構(gòu)如圖2所示,它主要由三部分組成,分別是圖形用戶界面模塊、系統(tǒng)管理主控模塊和音/視頻解碼器。三部分功能設(shè)計(jì)如下面所述:

圖形用戶界面模塊通過事件/消息機(jī)制和系統(tǒng)管理主控模塊交互。

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

系統(tǒng)管理主控模塊則負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的接收和解析、圖形用戶界面模塊和音/視頻解碼器模塊的工作協(xié)調(diào)和音/視頻數(shù)據(jù)的輸出。這個(gè)模塊是播放器軟件中非常重要的一個(gè)模塊。


圖2 播放器應(yīng)用程序結(jié)構(gòu)圖

 

3.2 用戶圖形界面設(shè)計(jì)

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

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

 

3.3 主要函數(shù)及具體實(shí)現(xiàn)

⑴ 播放控制事件回調(diào)函數(shù)

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;

}

⑵ 列表事件處理函數(shù)

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;   

  }

}

 

⑶ 主函數(shù)

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 結(jié)束語

  隨著嵌入式系統(tǒng)硬件性能的不斷提升,用戶對(duì)應(yīng)用程序界面的友好性和功能的完備性提出了更高的要求。本文介紹的基于MiniGUI的嵌入式媒體播放器具有設(shè)計(jì)簡(jiǎn)單,占用系統(tǒng)資源少等特點(diǎn),可作為開發(fā)基于嵌入式圖形界面系統(tǒng)的應(yīng)用軟件的參考。

 

參考文獻(xiàn)

 

[1] 魏永明.M in iGUI用戶手冊(cè)v1.6 [M].北京:北京飛漫軟件技術(shù)有限公司,2006.

[2] 魏永明.M in iGUI編程指南v1.6 [M].北京:北京飛漫軟件技術(shù)有限公司,2006.

[3] 楊小軍.基于嵌入式Linux系統(tǒng)界面的研究[[J].現(xiàn)代電子技術(shù),2004, 27 (IS):89-91.

[4] BarrM. C/C++嵌入式系統(tǒng)編程[M].十志宏譯.北京:中國電力出版社,2001.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

經(jīng)過幾十年發(fā)展,嵌入式技術(shù)已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強(qiáng)的屬性,讓很多非嵌入式領(lǐng)域的同學(xué)望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來越多領(lǐng)域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領(lǐng)域,不僅吸引...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 技術(shù)

隨著IT技術(shù)飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進(jìn)入了“物聯(lián)網(wǎng)”時(shí)代。物聯(lián)網(wǎng)中需要的大量設(shè)備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過協(xié)議、通信、程序設(shè)計(jì)等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計(jì)算機(jī)的智能但并不以通...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計(jì)算機(jī)

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉