<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 在UP-TECH S3C2410 DVK1.1開發(fā)平臺(tái)上的嵌入式掌上娛樂系統(tǒng)設(shè)計(jì)

          在UP-TECH S3C2410 DVK1.1開發(fā)平臺(tái)上的嵌入式掌上娛樂系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-04-15 來源:網(wǎng)絡(luò) 收藏

          播放列表用來播放用戶加載的多媒體文件。

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

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

          3.1.3 播放功能

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

          圖4 播放器軟件流程圖。

          通過定義一個(gè)QProcess 對(duì)象調(diào)用已編譯好的Mplayer。

          QProcess *process = new QProcess();

          process->setProcessChannelMode(QProcess::MergedChannels);

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

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

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

          ① 播放暫停功能

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

          ② 音量調(diào)節(jié)

          下面代碼即可實(shí)現(xiàn)音量調(diào)節(jié)的功能:

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

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

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

          使用如下代碼實(shí)現(xiàn)音量調(diào)節(jié):

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

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

          最終實(shí)現(xiàn)的實(shí)驗(yàn)效果圖如圖5 所示:

          圖5 播放器模塊實(shí)驗(yàn)結(jié)果圖

          3.2 游戲模塊的

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

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

          圖6 游戲模塊實(shí)驗(yàn)結(jié)果圖

          4 總結(jié)

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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();