<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 嵌入式掌上娛樂(lè )系統設計

嵌入式掌上娛樂(lè )系統設計

作者: 時(shí)間:2012-05-10 來(lái)源:網(wǎng)絡(luò ) 收藏

基于以上多個(gè)原因,本選擇了MPlayer 作為終端的播放軟件。本通過(guò)移植Mplayer 來(lái)實(shí)現對視頻的播放功能。Mplayer 編、解碼模塊,是的音、視頻處理中心,在mplayer 的編解碼庫中,包含的大量的音、視頻格式處理程序,經(jīng)過(guò)編譯優(yōu)化過(guò)的mplayer 可以完成對大多數音、視頻格式高效的編解碼工作。

3.1.2 前端程序的與播放器的實(shí)現

主界面窗口有一個(gè)顯示屏和一些控制按鈕,包括播放、暫停、下一首、上一首、音量調整以及播放進(jìn)度條。文件操作窗口可以使用戶(hù)選擇要播放的文件。

播放列表用來(lái)播放用戶(hù)加載的多媒體文件。

MPlayer 默認全屏播放,但在GUI 中一般都是指定區域或者控制來(lái)播放。這樣顯得美觀(guān),MPlayer 支持在指定的X 窗口播放的功能。用-wid 參數告訴窗口ID即可。例如:mplayer test.mpg -wid 0x00029 #0x0029是XID,而QT 的控件都是從QWidget 繼承下來(lái),因此它本身也有wid,這樣只要用 QWidget::winID() 取出WID,即可實(shí)現在指定窗口播放視頻的功能。

本模塊是建立一個(gè)Qt GUI 程序。然后用一個(gè)label控件來(lái)播放視屏,用一個(gè)進(jìn)度條顯示播放的進(jìn)度,用按鍵顯播放,暫停,上一首,下一首,停止和添加資源文件。然后用一個(gè)Qprocess 在后臺執行MPlayer,并把label 的WID 傳給它。然后把MPlayer 的輸入輸出重定向,把原本從標準輸入接收命令變成從GUI 的接收命令。

3.1.3 播放功能

播放器實(shí)現的軟件流程圖如圖4 所示:

4.jpg

圖4 播放器軟件流程圖

通過(guò)定義一個(gè)QProcess 對象調用已編譯好的Mplayer。

QProcess *process = new QProcess();

process->setProcessChannelMode(QProcess::MergedChannels);

Process->start(mplayer –ac –mad xxxxx);

在命令中添加 -slave 和 -quiet 就可以通過(guò)命令設置Mplayer 實(shí)現相應的功能。Process->start(mplayer–slave –quiet –ac –mad xxxxx)。

下面對播放器的暫停播放功能和音量調節進(jìn)行介紹。

① 播放暫停功能

通過(guò)這段代碼可以設置Mplayer 暫停:process->write(pause );執行這段代碼的時(shí)候在播放狀態(tài)下就會(huì )暫停,暫停狀態(tài)下就會(huì )繼續播放。

② 音量調節

下面代碼即可實(shí)現音量調節的功能:

Process->write(volume -1 ); //音量減??;

Process->write(volume +1 ); //音量增加;

Process->write(volume XX 1 ); //音量設置成指定值

該系統使用如下代碼實(shí)現音量調節:

QString cmd=volume +QString::number(value)+ 1 ;

process->write(cmd.toLocal8Bit()。data());

系統最終實(shí)現的實(shí)驗效果圖如圖5 所示:

5.jpg

圖5 播放器模塊實(shí)驗結果圖

3.2 游戲模塊的設計

本系統設計了一個(gè)打磚塊游戲。通過(guò)建立一個(gè)打磚塊的游戲類(lèi)CannonField,包含角度int angle、力度int force、是否正在射擊bool isShooting 等成員,具有設置角度setAngle(int angle)、設置力度setForce(intforce)、射擊shoot()、運動(dòng)軌跡shotRect()、游戲控制newTarget()、 setGameOver()、restartGame()等槽函數,能發(fā)出擊中hit() 、未擊中missed() 、角度變化angleChanged(int newAngle) 力度變化force Changed(int newForce)等信號。

游戲開(kāi)始時(shí)使用隨機函數在指定區域內顯示一個(gè)磚塊,點(diǎn)擊射擊按鈕時(shí)通過(guò)setAngle 和setForce 設置的角度和力度,使用shoot()進(jìn)行射擊,通過(guò)發(fā)出的擊中hit()或未擊中missed()信號來(lái)作出相應的動(dòng)作。仿真效果圖如圖6 所示:

6.jpg

圖6 游戲模塊實(shí)驗結果圖

4 總結

本系統采用開(kāi)源的Linux 操作系統和QT4 界面設計工具,整個(gè)系統采用模塊化設計,具有良好的可擴展性。硬件平臺采用的是 UP-TECH S3C2410 DVK1.1系統,該芯片采用ARM 架構,其獨特的架構設計具有功耗低、功能強的特點(diǎn),因此非常適合用于手持式設備;采用LCD 觸摸屏與用戶(hù)進(jìn)行交互,使用簡(jiǎn)單,符合便攜式終端的發(fā)展趨勢。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>