新聞中心

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

        嵌入式掌上娛樂系統設計

        作者: 時間:2012-05-10 來源:網絡 收藏

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

        3.1.2 前端程序的與播放器的實現

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

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

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

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

        3.1.3 播放功能

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

        4.jpg

        圖4 播放器軟件流程圖

        通過定義一個QProcess 對象調用已編譯好的Mplayer。

        QProcess *process = new QProcess();

        process->setProcessChannelMode(QProcess::MergedChannels);

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

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

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

        ① 播放暫停功能

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

        ② 音量調節

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

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

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

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

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

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

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

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

        5.jpg

        圖5 播放器模塊實驗結果圖

        3.2 游戲模塊的設計

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

        游戲開始時使用隨機函數在指定區域內顯示一個磚塊,點擊射擊按鈕時通過setAngle 和setForce 設置的角度和力度,使用shoot()進行射擊,通過發出的擊中hit()或未擊中missed()信號來作出相應的動作。仿真效果圖如圖6 所示:

        6.jpg

        圖6 游戲模塊實驗結果圖

        4 總結

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

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

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桐城市| 高邮市| 灵台县| 鹤山市| 稷山县| 永兴县| 新干县| 西和县| 建阳市| 八宿县| 梅河口市| 丰原市| 通州市| 蕉岭县| 双流县| 平武县| 轮台县| 灵山县| 凤庆县| 高碑店市| 奉新县| 明溪县| 潜山县| 呼和浩特市| 南华县| 叙永县| 宁波市| 芜湖县| 藁城市| 河池市| 玉田县| 那坡县| 井陉县| 政和县| 墨脱县| 铜山县| 巢湖市| 福贡县| 苏尼特右旗| 江油市| 呈贡县|