freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于qt的多媒體播放器系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(doc畢業(yè)設(shè)計(jì)論文)-閱讀頁

2025-07-12 18:34本頁面
  

【正文】 支持嵌入式設(shè)備的硬件加速圖形和多重顯示功能 174。Es的3D圖形:OpenGL174。雖然OpenGL完美支持3D圖形,但卻不支持創(chuàng)建應(yīng)用程序用戶界面。在您的應(yīng)用程序中輕松加入3D圖形在嵌入式Linux 與Windows CE 平臺(tái)上使用OpenGL ES和OpenGL繪畫引擎利用系統(tǒng)資源實(shí)現(xiàn)最佳圖形性能支持Windows 平臺(tái)上的Direct3D174。Qt的跨平臺(tái)多線程功能簡化了并行編程,另外它附加的同步功能可以更加輕松地利用多核架構(gòu)?;?Qt的應(yīng)用程序直接寫入 Linux 幀緩沖,解除了您對 X11 視窗系統(tǒng)的需求。對于該問題,Qt 的解決方案是信號(hào)與槽機(jī)制,即執(zhí)行Observer設(shè)計(jì)模式。信號(hào)與槽機(jī)制是類型安全的(type safe)任意信號(hào)都可以連接任意或多個(gè)插槽,或跨多個(gè)線程簡化真正的組件編程:Qt給您提供一個(gè)功能強(qiáng)大的2D圖形畫布,用以管理和集成大量的圖形元素。Phonon可以輕松將音頻與視頻回放功能加入到Qt應(yīng)用程序當(dāng)中,并且在每個(gè)目標(biāo)平臺(tái)上提取多媒體格式與框架。 ,Windows 上的DirectShow174。目前 Apple174。將web與本地內(nèi)容和服務(wù)整合在單一的富應(yīng)用程序當(dāng)中快速創(chuàng)建整合實(shí)時(shí)web內(nèi)容與服務(wù)的應(yīng)用程序使用集成在本地代碼中的 HTML 與Java Script完全控制跨平臺(tái)的瀏覽器環(huán)境:Qt 讓您網(wǎng)絡(luò)編程更簡單,并支持跨平臺(tái)網(wǎng)絡(luò)編程。同時(shí) Qt 還包含了 XQuery – 一個(gè)簡單的類似 SQL的查詢語言,用于解析XML文件來選擇和聚合所需要的XML元素,并且將它們轉(zhuǎn)換成XML輸出或其它格式的輸出。 QtScript 提供 QObject 集成,把 Qt的信號(hào)與槽機(jī)制整合成腳本,并且實(shí)現(xiàn)了C++ 與腳本的集成。Qt支持所有主要的數(shù)據(jù)驅(qū)動(dòng),并可讓您將SQL發(fā)送到數(shù)據(jù)庫服務(wù)器,或者讓 Qt SQL類自動(dòng)生成 SQL 查詢。開發(fā)板的布局和走線經(jīng)過專業(yè)人士精心設(shè)計(jì),工作非??煽浚煞€(wěn)定運(yùn)行在400MHz。三星公司推出的這款16/32 位RISC 處理器S3C2440A,是面向高端手持設(shè)備或其它一般應(yīng)用而設(shè)計(jì)的芯片。整體設(shè)計(jì)融合了MMU、AMBA BUS 和Harvard(哈佛)結(jié)構(gòu)。其內(nèi)部結(jié)構(gòu)框圖見下圖:體系結(jié)構(gòu):— 為手持設(shè)備和通用嵌入式應(yīng)用提供片上集成系統(tǒng)解決方案?!?增強(qiáng)的ARM 體系結(jié)構(gòu)MMU 用于支持WinCE,EPOC32 和Linux?!?采用ARM920T CPU 內(nèi)核支持ARM 調(diào)試體系結(jié)構(gòu)。系統(tǒng)管理器— 支持大/小端模式。— 支持可編程的每bank 8/16/32 位數(shù)據(jù)總線帶寬?!?bank7 具有可編程的bank 的起始地址和大小。— 所有的存儲(chǔ)器bank 都具有可編程的操作周期?!?支持掉電時(shí)的SDRAM 自刷新模式。NAND FLASH 啟動(dòng)引導(dǎo)— 支持從NAND FLASH 存儲(chǔ)器的啟動(dòng)?!?支持啟動(dòng)之后NAND 存儲(chǔ)器仍然作為外部存儲(chǔ)器使用— 支持高級NAND FLASHCache 存儲(chǔ)器— 64 項(xiàng)全相連模式,采用I–Cache(16KB)和D–Cache(16KB)?!?偽隨機(jī)數(shù)或輪轉(zhuǎn)循環(huán)替代法?!?寫緩沖器可以保存16 個(gè)字的數(shù)據(jù)和4 個(gè)地址。嵌入式Linux是按照嵌入式操作系統(tǒng)的要求而設(shè)計(jì)的一種小型操作系統(tǒng)。支持多線程、多進(jìn)程;支持多種平臺(tái),如x8PowerPC、ARM、MIPS等等。針對本應(yīng)用,對其進(jìn)行了裁剪和配置,只包含了系統(tǒng)所需的模塊支持ext2\jffs2等文件系統(tǒng);內(nèi)存驅(qū)動(dòng)模塊提供內(nèi)存管理功能;網(wǎng)絡(luò)接口模塊支持以太網(wǎng)接口;GPIO驅(qū)動(dòng)模塊主要是提供給鍵盤和觸摸屏使用;圖形驅(qū)動(dòng)模塊是圖形用戶界面(GUI)和圖像顯示的底層支撐模塊;音頻設(shè)備輸出驅(qū)動(dòng)模塊支持音頻數(shù)據(jù)的數(shù)模轉(zhuǎn)換。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。Bootloader程序與硬件平臺(tái)有很強(qiáng)相關(guān)性,不同開發(fā)板需要不同的bootloader。Bootloader的功能相當(dāng)于一個(gè)通信控制器,有了它之后,才可以通過串口或網(wǎng)口完成內(nèi)核的加載和應(yīng)用程序的燒寫。 宿主機(jī)開發(fā)環(huán)境配置安裝Linux系統(tǒng):宿主開發(fā)環(huán)境,我們選用在windows下安裝VMware WorkStation虛擬機(jī)+fedora 。 交叉編譯環(huán)境的建立make工具和gcc編譯器:嵌入式操作系統(tǒng)的移植是基于Linux操作系統(tǒng)的,在PC機(jī)上進(jìn)行系統(tǒng)的剪裁和配置,在通過交叉式編譯后,燒錄在目標(biāo)板上。嵌入式系統(tǒng)的開發(fā),通常都是采取主從模式,即通過串行口,使目標(biāo)機(jī)和宿主機(jī)相連接。如圖32所示,所有的編譯器,鏈接器和重新定位器都是在宿主機(jī)上運(yùn)行的,而最終經(jīng)過編譯——鏈接——重新定位所得到的二進(jìn)制可執(zhí)行文件都是在目標(biāo)機(jī)上運(yùn)行的,所以稱為“交叉編譯調(diào)試”。gcc是GUN推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,其執(zhí)行效率與一般的編譯器相比,平均要高20%30%。Linux下開發(fā)環(huán)境的建立主要就是建立交叉編譯環(huán)境,在fedora 、應(yīng)用程序等開發(fā)環(huán)境的步驟如下:、將其拷貝到某個(gè)目錄下,如tmp\,然后進(jìn)入到該目錄,執(zhí)行解壓命令:cd \tmptar xvzf Ctar xvzf Ctar xvzf Cmkdir p /opt/FriendlyARM/S3C2440執(zhí)行該命令,將把a(bǔ)rmlinuxgcc(, )分別安裝到/usr/loca/arm/,兩個(gè)版本均可以用來編譯應(yīng)用程序。重新登錄fedora系統(tǒng),使以上設(shè)置生效,在命令行輸入armlinuxgccv,會(huì)出現(xiàn)如圖42所示信息,這說明交叉編譯環(huán)境已經(jīng)成功安裝。通過使用make管理項(xiàng)目和Makefile,在Linux環(huán)境下編譯多個(gè)源文件時(shí)就避免了鍵入復(fù)雜的命令行。Makefile管理項(xiàng)目可以識(shí)別出makefile中哪些文件已經(jīng)修改,并且在再次編譯時(shí)只編譯這些文件,這樣提高了編譯效率。Makefile是一個(gè)數(shù)據(jù)庫文件,規(guī)則包含了3方面內(nèi)容:make要?jiǎng)?chuàng)建的目標(biāo)文件,編譯目標(biāo)文件時(shí)需要的依賴文件列表,通過依賴文件創(chuàng)建目標(biāo)文件的命令組。一個(gè)簡單的Makefile規(guī)則可以使用如下代碼表示:Target: dependency file1 dependency file1[...] Command1 Command2 [...]Target是要?jiǎng)?chuàng)建的目標(biāo)文件或者Linux系統(tǒng)支持格式的可執(zhí)行文件。CommandN是創(chuàng)建target時(shí)使用的命令組。通過使用純C++語言開發(fā)來支持嵌入式Linux 系統(tǒng),采用Qt/Embedded 作為GUI 來提供強(qiáng)大的用戶界面,實(shí)現(xiàn)一個(gè)開放式的插件接口來增強(qiáng)擴(kuò)展性,利用內(nèi)核幀緩沖來輸出,消除對特定架構(gòu)的依賴,從而保證可移植性。這樣設(shè)計(jì)的目的是為了系統(tǒng)移植性。由于采用了Qt/Embedded 作為GUI,移植性可以得到保證。插件接口調(diào)用主要是把所有對解碼器的操作整合到一個(gè)統(tǒng)一的開放式接口當(dāng)中,根據(jù)上一部分解析出的文件信息去查找相應(yīng)的解碼器插件并調(diào)用,如果沒有找到可用的解碼器可以返回信息提醒用戶添加相應(yīng)的插件。文件解碼和輸出主要負(fù)責(zé)通過調(diào)用解碼器對音視頻數(shù)據(jù)流進(jìn)行解碼,然后利用QT/Embedded 可以直接操縱內(nèi)核幀緩沖FrameBuffer 的特性,將解碼之后的數(shù)據(jù)通過FrameBuffer 直接送到輸出設(shè)備輸出,避免對DirectShow、OpenGL 等特定架構(gòu)的依賴,進(jìn)一步增強(qiáng)可移植性。Phonon是一個(gè)跨平臺(tái)多媒體框架,能夠在Qt應(yīng)用程式中使用與播放影音多媒體內(nèi)容。來源可能是影音檔等,而能夠提供基本的播放控制,例如開始、暫?;蚪Y(jié)束。 ?sinks 輸出多媒體,例如在widget上播放影片或是輸出至音效卡(播放音樂)。而sink只接受media object來的資料,由media object控制播放;而由sink來處理這些多媒體 ?paths 用來連接Phonon的物件,意即media object與sink之間的連接。MediaObject可說是處理多媒體檔案最基本的一部份,它接受并管理來自于MediaSource的媒體檔案。?play():開始播放多媒體資料 ?pause():暫停播放 ?stop():停止播放 AudioOutput ClassAudioOutput類別主要是用來把多媒體的聲音送到聲音輸出裝置。Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this)。Phonon::AudioOutput *audioOutput =new Phonon::AudioOutput(Phonon::MusicCategory, this)。編碼:我們已經(jīng)為我們的應(yīng)用程序創(chuàng)建了框架,現(xiàn)在只要添加功能即可?,F(xiàn)在需要添加槽,它們在前面編輯過的ui文件中已經(jīng)定義好了?!毙姓路?,添加如下代碼:private slots: void playPause()。 void nextFile()。 void finished()。最后,在“private”部分中添加如下變量,我們將在應(yīng)用程序的主要邏輯中用到這些變量:QListPhonon::MediaSource sources。Phonon::AudioOutput *audioOutput。編碼:現(xiàn)在,我們需要做的第一件事情是初始化Phonon,并建立內(nèi)部的信號(hào)和槽。如果你看一看這個(gè)方法的內(nèi)容,就會(huì)發(fā)現(xiàn)應(yīng)用程序的GUI是由“uisetupUi(this)。(注意千萬不要在setupUI之前來調(diào)用UI上面的組件,這時(shí)候根本還沒創(chuàng)建)這意味著,我們需要在這之前加入我們的預(yù)運(yùn)行代碼。mediaObject = new Phonon::MediaObject(this)。Phonon::createPath(mediaObject, audioOutput)。它是直接與音頻驅(qū)動(dòng)器通信的層的組成部分,并充當(dāng)MediaObject的虛擬音頻設(shè)備。順便提一句,MusicCategory不一定是必需的,但它可以對未來發(fā)展起到作用,比如可以根據(jù)正在收聽的內(nèi)容自動(dòng)變化的KDE均衡器。Phonon使用了一種叫做“graph”的框架,這意味著對象就像是一幅圖上的節(jié)點(diǎn),需要連接起來才能創(chuàng)建流向?,F(xiàn)在添加如下用于處理playPause()槽的新函數(shù):void MainWindow::playPause(){ switch (mediaObjectstate()){ case Phonon::PlayingState: mediaObjectpause()。 break。 break。 break。 break。所以它會(huì)連接到MediaObject,并控制串流目前的位置。 設(shè)計(jì)成果及分析 QT creator 在使用的過程中也出現(xiàn)了很多問題,首先是版本的問題,一開始編寫調(diào)試程序的時(shí)候應(yīng)當(dāng)選擇在WINDOWS下能夠直接運(yùn)行的QT SDK,下一步就是在虛擬機(jī)下QT creator的安裝,這里要注意的問題就是QT編譯環(huán)境的建立。我此次的任務(wù)是多媒體播放器的設(shè)計(jì),而播放器需要用到QT phonon,提供多媒體回放的功能。phonon最初是 一個(gè) 源于KDE的項(xiàng)目,為使用音頻和視頻的應(yīng)用程序開發(fā)提供的一個(gè)框架。Qt也是通過phonon來實(shí)現(xiàn)夸平臺(tái)的多媒體播放。遺憾的是下載的所有QT版本中沒有phonon模塊,此次任務(wù)只能通過編譯實(shí)現(xiàn),不能生成可執(zhí)行文件。 本次設(shè)計(jì)在Linux操作系統(tǒng)下,Qt/Embedded作為嵌入式系統(tǒng)圖形用戶界面GUI,通過虛擬機(jī)的fedora ,基本完成了基于QT的多媒體播放器的實(shí)現(xiàn)。不過本次設(shè)計(jì)過程中,由于時(shí)間因素的限制,對于QT庫的研究還不夠徹底,對于視頻解碼模塊的研究也沒能實(shí)現(xiàn),基于QT的播放器的設(shè)計(jì)與實(shí)現(xiàn)是需要依賴phonon框架的,網(wǎng)上所有的版本都缺乏phonon庫,使得在最終結(jié)果的實(shí)現(xiàn)有了很大的阻礙。目前,國內(nèi)外相繼推出了很多商業(yè)化嵌入式系統(tǒng),都在努力的為自己爭取嵌入式的市場份額。QT的發(fā)展也越加成熟,今后的重點(diǎn)就轉(zhuǎn)向了Linux的研究。 謝辭本研究作為我的畢業(yè)論文是在金一鳴老師精心指導(dǎo)和大力支持下完成的,他淵博的知識(shí)、開闊的視野和敏銳的思維給了我深深的啟迪,論文凝結(jié)著他的汗水。另外,本論文在整個(gè)研究過程中還得到本小組其他同學(xué)的極大幫助,他們幫我開拓思路,為我指點(diǎn)迷津,精心點(diǎn)撥,熱忱鼓勵(lì),為我完成這篇論文提供了巨大的幫助。引人注目的嵌入式Linux[J]。2000年35期[3]張海峰,張宏海,張土平。微計(jì)算機(jī)信息。潘剛。基于ARM的嵌入式Linux圖形化終端設(shè)計(jì)[A]。2006年[5]陳亮。龍飛。中國儀器儀表學(xué)會(huì)第九屆青年學(xué)術(shù)會(huì)議論文集[C]。嵌入式操作系統(tǒng)市場分析及技術(shù)發(fā)展[N]。2000年[7]蔡志明,盧傳富,:電子工業(yè)出版社,2008[8]葉順流。重慶
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1