国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式Linux的車載多媒體廣告機(jī)設(shè)計(jì)

2014-04-04 14:01鄭繼亭王潤(rùn)民張楠
物聯(lián)網(wǎng)技術(shù) 2014年3期

鄭繼亭+王潤(rùn)民+張楠

摘 要:針對(duì)傳統(tǒng)車載多媒體廣告機(jī)的局限性,提出了一種基于嵌入式Liunx與Qt/Embedded的車載多媒體廣告機(jī)的設(shè)計(jì)方案。該方案采用以ARM處理器S3C6410為核心的硬件平臺(tái)和以嵌入式Linux系統(tǒng)為核心的軟件平臺(tái),并在此基礎(chǔ)上采用開(kāi)放源代碼的圖形界面庫(kù)Qt開(kāi)發(fā)廣告機(jī)界面,同時(shí)利用開(kāi)源播放軟件MPlayer作為播放器。經(jīng)實(shí)驗(yàn)驗(yàn)證,該多媒體廣告機(jī)具有成本較低、界面友好、反應(yīng)靈敏等特點(diǎn),并在跨平臺(tái)性、可擴(kuò)展性等方面比傳統(tǒng)方案有顯著改善。

關(guān)鍵詞:多媒體廣告機(jī);嵌入式Linux;Qt/Embedded;MPlayer

中圖法分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)03-0063-03

0 引 言

隨著科學(xué)技術(shù)的發(fā)展,越來(lái)越多的多媒體廣告機(jī)出現(xiàn)在出租車中。現(xiàn)有的出租車廣告機(jī)大多采用移動(dòng)數(shù)字電視和數(shù)字存儲(chǔ)播放兩種方式。移動(dòng)數(shù)字電視只能應(yīng)用在存在數(shù)字電視信號(hào)的地區(qū),在無(wú)信號(hào)或信號(hào)較弱的地區(qū)則無(wú)法播放,對(duì)于廣告的播出時(shí)段、播出內(nèi)容需要和廣電系統(tǒng)合作協(xié)商,導(dǎo)致效率低、成本高,而且播出的節(jié)目不能點(diǎn)播;數(shù)字存儲(chǔ)播放的方式需要將節(jié)目?jī)?nèi)容先期進(jìn)行制作,然后將節(jié)目?jī)?nèi)容刻錄成光盤或者存儲(chǔ)于播放設(shè)備的存儲(chǔ)器中,這種方式目前存在的缺點(diǎn)是節(jié)目更新較為困難、時(shí)效性較差,而且存在軟硬件成本較高的問(wèn)題[1]。

針對(duì)現(xiàn)有的車載廣告機(jī)存在的不足,本文提出了一種新型的車載多媒體廣告機(jī)的設(shè)計(jì)方案。采用嵌入式Linux系統(tǒng)和ARM處理器S3C6410分別構(gòu)建多媒體廣告機(jī)的軟硬件平臺(tái),在此基礎(chǔ)上采用開(kāi)放源代碼的圖形界面庫(kù)Qt/E設(shè)計(jì)廣告機(jī)的程序界面,在Qt設(shè)計(jì)的界面上顯示多媒體播放器MPlayer播放的視頻,結(jié)合FrameBuffer在視頻的上方和下方分別顯示Logo和字幕,最終完成應(yīng)用程序的開(kāi)發(fā)。

1 系統(tǒng)總體設(shè)計(jì)

車載廣告機(jī)的基本設(shè)計(jì)思想是在基于ARM的嵌入式平臺(tái)上完成多媒體文件的存儲(chǔ)、解析和處理,控制LCD模塊和音頻模塊完成多媒體廣告的播放,并采用Wi-Fi無(wú)線網(wǎng)絡(luò)完成多媒體廣告機(jī)系統(tǒng)中視頻文件的智能下載更新?;谇度胧杰?、硬件環(huán)境,車載廣告機(jī)系統(tǒng)的整體結(jié)構(gòu)如圖1所示:

圖1 車載廣告機(jī)系統(tǒng)整體結(jié)構(gòu)

2 系統(tǒng)硬件設(shè)計(jì)

車載廣告機(jī)系統(tǒng)的硬件結(jié)構(gòu)圖如圖2所示。系統(tǒng)的核心處理器采用基于ARM1176JZF-S核的S3C6410芯片,其主頻最高可達(dá)到667 MHz,內(nèi)部集成了強(qiáng)大的多媒體處理單元,帶有3D圖形硬件加速器,并支持2D圖形圖像的平滑縮放等操作,有利于為用戶提供高靈敏度的汽車狀態(tài)動(dòng)態(tài)顯示[2];外接16 GB的SD卡和2 GB NAND FLASH,為多媒體文件的本地存儲(chǔ)提供了充足的硬件環(huán)境;顯示接口采用8寸TFT液晶顯示屏,處理器內(nèi)部集成的LCD控制器信號(hào)線經(jīng)過(guò)驅(qū)動(dòng)電路后即可連接LCD模塊,為多媒體廣告的顯示提供了硬件平臺(tái);外接觸摸屏,用戶可根據(jù)需要自主選擇喜愛(ài)的節(jié)目;外接音頻編解碼芯片CS42L50,為多媒體播放提供音頻支持;外接基于Marvell 8686芯片的SD Wi-Fi模塊,使廣告機(jī)終端能夠接入無(wú)線網(wǎng)絡(luò),連接到遠(yuǎn)端服務(wù)器,完成系統(tǒng)所需多媒體文件的智能下載更新。

圖2 車載廣告機(jī)系統(tǒng)硬件結(jié)構(gòu)圖

3 系統(tǒng)軟件設(shè)計(jì)

車載廣告機(jī)的軟件設(shè)計(jì)主要是開(kāi)發(fā)基于嵌入式Linux系統(tǒng)的客戶端應(yīng)用程序。本系統(tǒng)采用嵌入式Linux作為操作系統(tǒng),在Linux平臺(tái)下編寫廣告機(jī)的驅(qū)動(dòng)程序;利用Qt/Embedded作為圖形界面解決方案實(shí)現(xiàn)廣告機(jī)的圖形界面,在此界面上顯示Mplayer播放器播放的視頻。

該系統(tǒng)軟件的開(kāi)發(fā)主要有4個(gè)內(nèi)容:開(kāi)發(fā)平臺(tái)的搭建、編譯Qt/Embedded庫(kù)、視頻播放器MPlayer的移植和廣告機(jī)應(yīng)用程序的實(shí)現(xiàn)[3]。

3.1 嵌入式Linux系統(tǒng)開(kāi)發(fā)平臺(tái)的搭建

為了開(kāi)發(fā)滿足要求的應(yīng)用程序,本文采用的軟件開(kāi)發(fā)環(huán)境是Vmware WorkStation 7虛擬機(jī)和Fedora 9 操作系統(tǒng),在此環(huán)境中安裝交叉編譯器ARM-linux-gcc 4.3.2,用來(lái)完成包含相關(guān)驅(qū)動(dòng)程序的虛擬儀表系統(tǒng)內(nèi)核、QT庫(kù)和應(yīng)用程序的編譯;在Fedora 9系統(tǒng)中安裝Qt Creator軟件,用于完成虛擬儀表系統(tǒng)應(yīng)用程序的開(kāi)發(fā);移植嵌入式設(shè)備的系統(tǒng)引導(dǎo)程序U-boot;編寫硬件平臺(tái)中音頻模塊、Wi-Fi模塊和SD卡等設(shè)備的驅(qū)動(dòng)[4],然后裁剪編譯Linux 2.6.29內(nèi)核并在其中加載已編譯的相關(guān)驅(qū)動(dòng)[5],制作硬件平臺(tái)需要的根文件系統(tǒng)。

3.2 編譯Qt/Embedded庫(kù)

Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,其對(duì)象容易擴(kuò)展,可移植性較好,支持多個(gè)GUI平臺(tái)的交互開(kāi)發(fā)。Qt/Embedded Linux是為嵌入式Linux優(yōu)化過(guò)的Qt版本,被廣泛應(yīng)用于各種嵌入式產(chǎn)品和設(shè)備當(dāng)中,其實(shí)現(xiàn)結(jié)構(gòu)如圖3所示。為了減少系統(tǒng)內(nèi)存占用量、提高系統(tǒng)性能,可以對(duì)Qt/Embedded Linux進(jìn)行重新裁剪編譯,去掉不需要的特性。

下載tslib1.4.tar.gz,在搭建好的開(kāi)發(fā)平臺(tái)內(nèi)解壓后執(zhí)行配置、編譯和安裝命令,編譯安裝Tslib庫(kù),添加觸摸屏支持。然后通過(guò)./configure裁剪、配置Qt/Embedded庫(kù)。配置完成后采用make命令編譯,用make install命令安裝Qt/Embedded Linux到指定的位置。

圖3 Qt/E的實(shí)現(xiàn)結(jié)構(gòu)

3.3 移植視頻播放器MPlayer

MPlayer是一款開(kāi)源的多媒體播放器,遵循GPL規(guī)范。該播放器可以在多種操作系統(tǒng)上運(yùn)行。MPlayer自帶的音頻、視頻解碼器可以支持許多流行的音頻和視頻格式。相對(duì)于其他播放器,MPlayer運(yùn)行過(guò)程中資源占用非常少,對(duì)系統(tǒng)硬件的配置要求比較低,故本系統(tǒng)采用MPlayer作為多媒體播放器。直接使用MPlayer作為播放器還可以節(jié)約開(kāi)發(fā)成本,同時(shí)也增加了系統(tǒng)的可靠性[6]。

下載libmad后解壓,使用./configure配置libmad,然后分別使用make命令和make install命令安裝libmad。下載解壓MPlayer源文件,使用./configure命令進(jìn)行配置,注意一定要添加—target=arm-linux,標(biāo)明為ARM平臺(tái)配置,然后使用make命令進(jìn)行編譯,使用make install命令安裝至當(dāng)前目錄。生成的可執(zhí)行文件Mplayer即為MPlayer播放器,將其拷貝至開(kāi)發(fā)板/bin目錄下,完成MPlayer的移植。

3.4 設(shè)計(jì)廣告機(jī)應(yīng)用程序

3.4.1 廣告機(jī)界面的實(shí)現(xiàn)

廣告機(jī)界面的實(shí)現(xiàn)較為簡(jiǎn)單,只需要在屏幕的右側(cè)顯示一排可以點(diǎn)擊的圖形按鈕,左側(cè)用于廣告視頻的顯示。對(duì)于圖形按鈕的設(shè)計(jì),需要首先準(zhǔn)備好每一個(gè)按鈕未點(diǎn)擊和點(diǎn)擊后的圖片素材并將他們添加到程序的資源文件advertise.qrc中,程序運(yùn)行時(shí)會(huì)加載這些圖片到內(nèi)存中,然后在窗口的paintEvent()函數(shù)中進(jìn)行按鈕的繪制,在用戶點(diǎn)擊圖形按鈕時(shí),在mousePressEvent()函數(shù)中處理按鈕的點(diǎn)擊事件;視頻采用全屏顯示,需要在main函數(shù)中,用showFullScreen()函數(shù)顯示窗口即可實(shí)現(xiàn)全屏;為了在視頻播放的同時(shí)顯示Logo和字幕,應(yīng)用程序使用了4個(gè)FrameBuffer,分別用于顯示Qt程序界面、MPlayer視頻圖像、Logo和字幕,實(shí)現(xiàn)四者的疊加顯示。

3.4.2 實(shí)現(xiàn)視頻的播放

要實(shí)現(xiàn)廣告視頻文件在Qt窗口上播放,需要使用戶界面通過(guò)QProcess類啟動(dòng)一個(gè)新程序來(lái)實(shí)現(xiàn)對(duì)MPlayer的控制,如圖4所示。QProcess類使應(yīng)用程序在Qt程序中調(diào)用另外一個(gè)進(jìn)程。其實(shí)現(xiàn)代碼如下:

mplayerProcess = new QProcess(this); //創(chuàng)建一個(gè)QProcess對(duì)象

connect(mplayerProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(mplayerEnded(int, QProcess::ExitStatus))); //finished信號(hào)在MPlayer程序結(jié)束時(shí)發(fā)射,標(biāo)志著一個(gè)視頻已播放完成,用此信號(hào)可通知程序自動(dòng)播放下一個(gè)視頻,實(shí)現(xiàn)視頻的循環(huán)播放

圖4 在圖形界面程序中使用MPlayer

3.4.3 界面與MPlayer的交互

MPlayer與Qt4程序之間使用管道方式進(jìn)行通信,QProcess類隱藏了具體的通信細(xì)節(jié),將新建立的進(jìn)程當(dāng)做主程序的一個(gè)I/O設(shè)備,因此需要使用QProcess類提供的read()/write()函數(shù)來(lái)調(diào)用這個(gè)進(jìn)程的標(biāo)準(zhǔn)輸入/輸出[7],如下所示:

mplayerProcess->write(“quit\n”);//通知MPlayer退出

當(dāng)QProcess啟動(dòng)MPlayer后,應(yīng)用程序可以將控制命令寫入MPlayer的標(biāo)準(zhǔn)輸入,MPlayer從標(biāo)準(zhǔn)輸入讀到數(shù)據(jù)后會(huì)執(zhí)行相應(yīng)的功能。其實(shí)現(xiàn)代碼如下:

QStringList args;

args<<”-framebuffer-index”<<”1”;//MPlayer不支持將視頻顯示在Qt/E的串口上,而是直接顯示在Frame Buffer上,在這里結(jié)合多Frame Buffer特性,以及screenrect參數(shù),將視頻定位到Qt繪制的窗口的劃定區(qū)域上面

QStringscreenRect= QString("%1,%2,%3,%4").arg(m_videoWindowRect.left ()).arg(m_videoWindowRect.top()).arg(m_videoWindowRect.width()).arg(m_videoWindowRect.height()); //計(jì)算顯示視頻的區(qū)域

args << screenRect; //位置傳遞

args << "-slave"; //使用MPlayer的slave模式,在此模式下,MPlayer在運(yùn)行過(guò)程中能夠接收用戶的輸入命令。

m_mplayerProcess->start(MPLAYER_PATH, args); //寫入命令

3.4.4 視頻文件的更新

應(yīng)用程序通過(guò)廣告機(jī)內(nèi)置的無(wú)線網(wǎng)卡訪問(wèn)遠(yuǎn)程服務(wù)器即可實(shí)現(xiàn)廣告視頻文件的更新。廣告機(jī)終端在系統(tǒng)開(kāi)機(jī)運(yùn)行時(shí)通過(guò)QThread類新建一個(gè)線程,通過(guò)無(wú)線網(wǎng)卡定期向遠(yuǎn)程服務(wù)器查詢是否需要更新視頻文件,在廣告機(jī)準(zhǔn)備好更新時(shí),服務(wù)器通過(guò)無(wú)線網(wǎng)可將封裝后的視頻發(fā)送到無(wú)線局域網(wǎng)中去。接收端系統(tǒng)通過(guò)驅(qū)動(dòng)程序接收數(shù)據(jù)包,進(jìn)行解封裝得到需要更新的視頻目錄和視頻數(shù)據(jù)[8],終端則根據(jù)更新目錄進(jìn)行視頻文件的刪除或下載等操作。其實(shí)現(xiàn)代碼如下:

class DownLoad :public QThread

{ Q_OBJECT

protected:

void run();//開(kāi)機(jī)即開(kāi)啟一個(gè)QTimer定時(shí)器,定時(shí)向遠(yuǎn)程服務(wù)器查詢是否需要更新視頻文件。

signals: void upDates();//在需要進(jìn)行視頻更新時(shí),以信號(hào)與槽(signals/slot)的方式,通知主程序進(jìn)行視頻文件的更新。

……

3.4.5 畫面閃爍問(wèn)題的解決

畫面的動(dòng)態(tài)刷新顯示,會(huì)使屏幕出現(xiàn)閃爍。本設(shè)計(jì)采用雙緩沖機(jī)制解決畫面閃爍的問(wèn)題,將整個(gè)窗口部件在屏幕外的像素映射中繪制,然后把這個(gè)像素映射復(fù)制到顯示窗口中[9]。其實(shí)現(xiàn)代碼如下:

void Mainwidow::paintEvent(QPaintEvent *event)

{……

Qsize newSize=rect.size().expandedTo(pixmap.size());//創(chuàng)建至少和所繪區(qū)域一樣大的繪圖緩沖

QPainter painter (&pixmap,this);//創(chuàng)建操作像素映射的QPainter

Painter.translate.(-rect.x(),-rect.y());//對(duì)像素映射中繪制矩形的畫筆進(jìn)行坐標(biāo)轉(zhuǎn)換

bitBlt(this,rect.x(),rect.y(),&pixmap,0,0,rect.width(),rect.height());//利用bitBlt()把像素映射復(fù)制到顯示窗口部件上}

4 運(yùn)行發(fā)布程序

將裁剪、編譯過(guò)的內(nèi)核與制作的帶QT庫(kù)的文件系統(tǒng)燒寫到開(kāi)發(fā)板。在開(kāi)發(fā)環(huán)境內(nèi)交叉編譯編寫的應(yīng)用程序,得到可執(zhí)行二進(jìn)制文件,將此文件移植到開(kāi)發(fā)板,即可實(shí)現(xiàn)應(yīng)用程序的發(fā)布[10]。重新開(kāi)機(jī),運(yùn)行應(yīng)用程序即可啟動(dòng)廣告機(jī),其啟動(dòng)后的畫面如圖5所示。

圖5 廣告機(jī)FrameBuffer 的劃分及運(yùn)行顯示效果

5 結(jié) 語(yǔ)

本文提出了一種新型的車載多媒體廣告機(jī)的設(shè)計(jì)方案,以ARM和嵌入式Linux為基礎(chǔ)平臺(tái),通過(guò)定制移植QT和MPlayer并設(shè)計(jì)應(yīng)用程序?qū)崿F(xiàn)多媒體廣告機(jī)系統(tǒng)的設(shè)計(jì)。通過(guò)本設(shè)計(jì)方案設(shè)計(jì)的廣告機(jī),采用開(kāi)放源代碼軟件設(shè)計(jì),使系統(tǒng)的成本降低,同時(shí)采用雙緩沖技術(shù)消除頁(yè)面閃爍,使其更具有市場(chǎng)競(jìng)爭(zhēng)力;采用Qt插件的方式設(shè)計(jì)系統(tǒng)的各個(gè)模塊,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可定制性;通過(guò)Wi-Fi與服務(wù)器交互實(shí)現(xiàn)視頻文件的更新,解決了大批量設(shè)備同時(shí)進(jìn)行大容量視頻數(shù)據(jù)更新的問(wèn)題,提高了更新速度。經(jīng)實(shí)驗(yàn)測(cè)試,該系統(tǒng)所有功能模塊都能正常運(yùn)行,達(dá)到了預(yù)期的效果,隨著信息化的發(fā)展,有著廣闊的前景。

參 考 文 獻(xiàn)

[1]江雷,馮剛,香華冠,等.基于WinCE和GPRS多媒體廣告系統(tǒng)設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2009(1):178-180.

[2]宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2010.

[3]胡志文,張崎.基于嵌入式Linux的自助點(diǎn)菜終端設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):22-24.

[4] CORBET Jonathan,RUBINI Alessandro,KROAH- HARTMAN Greg.Linux設(shè)備驅(qū)動(dòng)程序[M].北京:中國(guó)電力出版社,2005.

[5] BOVET P Daniel,CESATI Marco.深入理解Linux內(nèi)核[M].北京:中國(guó)電力出版社,2007.

[6]米韶華,康東,楊小峰.S3C2440嵌入式音頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)測(cè)試,2010,36(2):74-77.

[7] BLANCHETTE Jasmin,SUMMERFIELD Mark.C++ GUI Programming with Qt4 [M].2nd Edition. London:Prentice Hall,2008.

[8]馬資道,張正炳.基于ARM-Linux的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)江大學(xué)學(xué)報(bào):自然科學(xué)版,2010,7(3):649-651.

[9]周建強(qiáng),姚學(xué)軍,謝立.超立方體上基于緩沖機(jī)制的無(wú)死鎖路徑算法[J].軟件學(xué)報(bào),1995(4):240-247.

[10]陳卓.一種嵌入式TCP/IP協(xié)議棧的研究與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2006.

Design of vehicular multimedia AD player based on embedded Linux

ZHENG Ji-ting1, WANG Run-min1, Zhang Nan2

(1.Changan University, Xian 710064, China; 2.Xian University of Science and Technology, Xian 710054, China)

Abstract: Aiming at the limitation of traditional vehicular multimedia AD player, a design method of vehicular multimedia AD player based on embedded Linux and Qt/Embedded is proposed. S3C6410 is adopted as the central processor in the hardware and the software platform uses Embedded Linux operating system. Additionally, the interface is developed by Qt, which is a type of open source graphical user interface library. The system adopts MPlayer as its media player. After experimental verification, the AD player has the characteristic of low cost, user-friendly, quick reaction, and has a significant improvement in cross-platform and scalability.

Keywords: multimedia AD player; embedded Linux; Qt/Embedded; Mplayer

{……

Qsize newSize=rect.size().expandedTo(pixmap.size());//創(chuàng)建至少和所繪區(qū)域一樣大的繪圖緩沖

QPainter painter (&pixmap,this);//創(chuàng)建操作像素映射的QPainter

Painter.translate.(-rect.x(),-rect.y());//對(duì)像素映射中繪制矩形的畫筆進(jìn)行坐標(biāo)轉(zhuǎn)換

bitBlt(this,rect.x(),rect.y(),&pixmap,0,0,rect.width(),rect.height());//利用bitBlt()把像素映射復(fù)制到顯示窗口部件上}

4 運(yùn)行發(fā)布程序

將裁剪、編譯過(guò)的內(nèi)核與制作的帶QT庫(kù)的文件系統(tǒng)燒寫到開(kāi)發(fā)板。在開(kāi)發(fā)環(huán)境內(nèi)交叉編譯編寫的應(yīng)用程序,得到可執(zhí)行二進(jìn)制文件,將此文件移植到開(kāi)發(fā)板,即可實(shí)現(xiàn)應(yīng)用程序的發(fā)布[10]。重新開(kāi)機(jī),運(yùn)行應(yīng)用程序即可啟動(dòng)廣告機(jī),其啟動(dòng)后的畫面如圖5所示。

圖5 廣告機(jī)FrameBuffer 的劃分及運(yùn)行顯示效果

5 結(jié) 語(yǔ)

本文提出了一種新型的車載多媒體廣告機(jī)的設(shè)計(jì)方案,以ARM和嵌入式Linux為基礎(chǔ)平臺(tái),通過(guò)定制移植QT和MPlayer并設(shè)計(jì)應(yīng)用程序?qū)崿F(xiàn)多媒體廣告機(jī)系統(tǒng)的設(shè)計(jì)。通過(guò)本設(shè)計(jì)方案設(shè)計(jì)的廣告機(jī),采用開(kāi)放源代碼軟件設(shè)計(jì),使系統(tǒng)的成本降低,同時(shí)采用雙緩沖技術(shù)消除頁(yè)面閃爍,使其更具有市場(chǎng)競(jìng)爭(zhēng)力;采用Qt插件的方式設(shè)計(jì)系統(tǒng)的各個(gè)模塊,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可定制性;通過(guò)Wi-Fi與服務(wù)器交互實(shí)現(xiàn)視頻文件的更新,解決了大批量設(shè)備同時(shí)進(jìn)行大容量視頻數(shù)據(jù)更新的問(wèn)題,提高了更新速度。經(jīng)實(shí)驗(yàn)測(cè)試,該系統(tǒng)所有功能模塊都能正常運(yùn)行,達(dá)到了預(yù)期的效果,隨著信息化的發(fā)展,有著廣闊的前景。

參 考 文 獻(xiàn)

[1]江雷,馮剛,香華冠,等.基于WinCE和GPRS多媒體廣告系統(tǒng)設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2009(1):178-180.

[2]宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2010.

[3]胡志文,張崎.基于嵌入式Linux的自助點(diǎn)菜終端設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):22-24.

[4] CORBET Jonathan,RUBINI Alessandro,KROAH- HARTMAN Greg.Linux設(shè)備驅(qū)動(dòng)程序[M].北京:中國(guó)電力出版社,2005.

[5] BOVET P Daniel,CESATI Marco.深入理解Linux內(nèi)核[M].北京:中國(guó)電力出版社,2007.

[6]米韶華,康東,楊小峰.S3C2440嵌入式音頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)測(cè)試,2010,36(2):74-77.

[7] BLANCHETTE Jasmin,SUMMERFIELD Mark.C++ GUI Programming with Qt4 [M].2nd Edition. London:Prentice Hall,2008.

[8]馬資道,張正炳.基于ARM-Linux的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)江大學(xué)學(xué)報(bào):自然科學(xué)版,2010,7(3):649-651.

[9]周建強(qiáng),姚學(xué)軍,謝立.超立方體上基于緩沖機(jī)制的無(wú)死鎖路徑算法[J].軟件學(xué)報(bào),1995(4):240-247.

[10]陳卓.一種嵌入式TCP/IP協(xié)議棧的研究與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2006.

Design of vehicular multimedia AD player based on embedded Linux

ZHENG Ji-ting1, WANG Run-min1, Zhang Nan2

(1.Changan University, Xian 710064, China; 2.Xian University of Science and Technology, Xian 710054, China)

Abstract: Aiming at the limitation of traditional vehicular multimedia AD player, a design method of vehicular multimedia AD player based on embedded Linux and Qt/Embedded is proposed. S3C6410 is adopted as the central processor in the hardware and the software platform uses Embedded Linux operating system. Additionally, the interface is developed by Qt, which is a type of open source graphical user interface library. The system adopts MPlayer as its media player. After experimental verification, the AD player has the characteristic of low cost, user-friendly, quick reaction, and has a significant improvement in cross-platform and scalability.

Keywords: multimedia AD player; embedded Linux; Qt/Embedded; Mplayer

{……

Qsize newSize=rect.size().expandedTo(pixmap.size());//創(chuàng)建至少和所繪區(qū)域一樣大的繪圖緩沖

QPainter painter (&pixmap,this);//創(chuàng)建操作像素映射的QPainter

Painter.translate.(-rect.x(),-rect.y());//對(duì)像素映射中繪制矩形的畫筆進(jìn)行坐標(biāo)轉(zhuǎn)換

bitBlt(this,rect.x(),rect.y(),&pixmap,0,0,rect.width(),rect.height());//利用bitBlt()把像素映射復(fù)制到顯示窗口部件上}

4 運(yùn)行發(fā)布程序

將裁剪、編譯過(guò)的內(nèi)核與制作的帶QT庫(kù)的文件系統(tǒng)燒寫到開(kāi)發(fā)板。在開(kāi)發(fā)環(huán)境內(nèi)交叉編譯編寫的應(yīng)用程序,得到可執(zhí)行二進(jìn)制文件,將此文件移植到開(kāi)發(fā)板,即可實(shí)現(xiàn)應(yīng)用程序的發(fā)布[10]。重新開(kāi)機(jī),運(yùn)行應(yīng)用程序即可啟動(dòng)廣告機(jī),其啟動(dòng)后的畫面如圖5所示。

圖5 廣告機(jī)FrameBuffer 的劃分及運(yùn)行顯示效果

5 結(jié) 語(yǔ)

本文提出了一種新型的車載多媒體廣告機(jī)的設(shè)計(jì)方案,以ARM和嵌入式Linux為基礎(chǔ)平臺(tái),通過(guò)定制移植QT和MPlayer并設(shè)計(jì)應(yīng)用程序?qū)崿F(xiàn)多媒體廣告機(jī)系統(tǒng)的設(shè)計(jì)。通過(guò)本設(shè)計(jì)方案設(shè)計(jì)的廣告機(jī),采用開(kāi)放源代碼軟件設(shè)計(jì),使系統(tǒng)的成本降低,同時(shí)采用雙緩沖技術(shù)消除頁(yè)面閃爍,使其更具有市場(chǎng)競(jìng)爭(zhēng)力;采用Qt插件的方式設(shè)計(jì)系統(tǒng)的各個(gè)模塊,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可定制性;通過(guò)Wi-Fi與服務(wù)器交互實(shí)現(xiàn)視頻文件的更新,解決了大批量設(shè)備同時(shí)進(jìn)行大容量視頻數(shù)據(jù)更新的問(wèn)題,提高了更新速度。經(jīng)實(shí)驗(yàn)測(cè)試,該系統(tǒng)所有功能模塊都能正常運(yùn)行,達(dá)到了預(yù)期的效果,隨著信息化的發(fā)展,有著廣闊的前景。

參 考 文 獻(xiàn)

[1]江雷,馮剛,香華冠,等.基于WinCE和GPRS多媒體廣告系統(tǒng)設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2009(1):178-180.

[2]宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2010.

[3]胡志文,張崎.基于嵌入式Linux的自助點(diǎn)菜終端設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):22-24.

[4] CORBET Jonathan,RUBINI Alessandro,KROAH- HARTMAN Greg.Linux設(shè)備驅(qū)動(dòng)程序[M].北京:中國(guó)電力出版社,2005.

[5] BOVET P Daniel,CESATI Marco.深入理解Linux內(nèi)核[M].北京:中國(guó)電力出版社,2007.

[6]米韶華,康東,楊小峰.S3C2440嵌入式音頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)測(cè)試,2010,36(2):74-77.

[7] BLANCHETTE Jasmin,SUMMERFIELD Mark.C++ GUI Programming with Qt4 [M].2nd Edition. London:Prentice Hall,2008.

[8]馬資道,張正炳.基于ARM-Linux的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)江大學(xué)學(xué)報(bào):自然科學(xué)版,2010,7(3):649-651.

[9]周建強(qiáng),姚學(xué)軍,謝立.超立方體上基于緩沖機(jī)制的無(wú)死鎖路徑算法[J].軟件學(xué)報(bào),1995(4):240-247.

[10]陳卓.一種嵌入式TCP/IP協(xié)議棧的研究與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2006.

Design of vehicular multimedia AD player based on embedded Linux

ZHENG Ji-ting1, WANG Run-min1, Zhang Nan2

(1.Changan University, Xian 710064, China; 2.Xian University of Science and Technology, Xian 710054, China)

Abstract: Aiming at the limitation of traditional vehicular multimedia AD player, a design method of vehicular multimedia AD player based on embedded Linux and Qt/Embedded is proposed. S3C6410 is adopted as the central processor in the hardware and the software platform uses Embedded Linux operating system. Additionally, the interface is developed by Qt, which is a type of open source graphical user interface library. The system adopts MPlayer as its media player. After experimental verification, the AD player has the characteristic of low cost, user-friendly, quick reaction, and has a significant improvement in cross-platform and scalability.

Keywords: multimedia AD player; embedded Linux; Qt/Embedded; Mplayer

砚山县| 云龙县| 塔城市| 辽阳市| 阜新| 封丘县| 图们市| 南开区| 阆中市| 车险| 商城县| 和林格尔县| 饶阳县| 平度市| 洪湖市| 郁南县| 桂平市| 阳山县| 平舆县| 枣阳市| 修水县| 沭阳县| 永清县| 安宁市| 蒙城县| 库尔勒市| 青海省| 南岸区| 抚顺县| 罗定市| 佳木斯市| 弥勒县| 松阳县| 江门市| 仁布县| 隆林| 四子王旗| 微山县| 通榆县| 张家口市| 文水县|