計算機(jī)應(yīng)用技術(shù):MP4應(yīng)用程序開發(fā)分析研究_第1頁
計算機(jī)應(yīng)用技術(shù):MP4應(yīng)用程序開發(fā)分析研究_第2頁
計算機(jī)應(yīng)用技術(shù):MP4應(yīng)用程序開發(fā)分析研究_第3頁
計算機(jī)應(yīng)用技術(shù):MP4應(yīng)用程序開發(fā)分析研究_第4頁
計算機(jī)應(yīng)用技術(shù):MP4應(yīng)用程序開發(fā)分析研究_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、景德鎮(zhèn)高等??茖W(xué)校數(shù)學(xué)與計算機(jī)系畢業(yè)設(shè)計(2011屆)課題名稱: mp4應(yīng)用程序開發(fā)分析研究 姓名: xxx 學(xué)號: 200801040142 專業(yè): 計算機(jī)應(yīng)用技術(shù) 所在班級: 08級計應(yīng)(1)班 指導(dǎo)教師:姓名: xxx 職稱: 時間:二零一三年一月三日目 錄摘 要abstract第一章 引言4 1.1 課題背景4 1.2 市場現(xiàn)狀5 1.3 課題目的5 1.4 課題內(nèi)容6第二章 系統(tǒng)方案6 2.1 系統(tǒng)總體設(shè)計7 2.2 開發(fā)環(huán)境與硬件平臺8 2.3 各功能模塊設(shè)計20第三章 軟件設(shè)計與實現(xiàn)21 3.1 平臺搭建21 3.2 音樂播放器模塊22 3.3 視頻播放器模塊23 3.4 通訊錄

2、模塊24 3.5 提醒模塊25 3.6電子書模塊26 3.7 日歷模塊27 3.8 游戲模塊28 3.9 計算器模塊29第4章 系統(tǒng)界面設(shè)計30 第五章 功能與特色315.1 實現(xiàn)功能315.2 功能特色32第六章 總結(jié)與展望33 總結(jié)33 展望40參考文獻(xiàn)4257 摘 要針對傳統(tǒng)的mp4功能單一、缺少人性化設(shè)計等方面的不足,本文設(shè)計實現(xiàn)了基于arm9的多功能的mp4影音系統(tǒng),這是一簡易多功能的數(shù)碼產(chǎn)品。該系統(tǒng)基于s3c2410處理器和嵌入式linux操作系統(tǒng),采用 qt embedded圖形界面開發(fā)技術(shù)和mplayer linux視頻處理技術(shù)。實現(xiàn)了影音播放、通訊錄、計算器、游戲娛樂、定時提

3、醒、txt文本閱讀器和相冊等功能。基于arm9的多功能的mp4影音系統(tǒng)具有功能人性化、用戶界面美觀等特色,擁有廣闊的應(yīng)用前景。abstract mp4 for the traditional single function, the lack of user-friendly design deficiencies, this paper designed and implemented a versatile arm9-based mp4 audio-visual system, which is a simple multi-function digital products. the s

4、ystem is based s3c2410 processor and embedded linux operating system and graphical interface using qt embedded development technologies and mplayer linux video processing technology. achieved a video player, address book, calculator, games, entertainment, from time to time to remind, txt text reader

5、s and photo albums. arm9-based multi-function mp4 audio system with user-friendly features, user interface and other features beautiful, with wide application prospects. 第一章 引 言1. 1 課題背景: 現(xiàn)在社會競爭激烈,尤其是電子行業(yè)。一款新產(chǎn)品的誕生在現(xiàn)在來講是一件很容易的事,但是一款產(chǎn)品要想在市場上贏得消費(fèi)者的青睞,提高市場競爭力這個就比較難了。首先要有好的產(chǎn)品質(zhì)量,同時產(chǎn)品應(yīng)該有個性,人性化,要讓使用者有愛不釋手。這

6、樣的話自然而然的就在市場上占據(jù)了有利的地位。1. 2 現(xiàn)在市場現(xiàn)狀 通過在市場調(diào)查和分析,初步了解到現(xiàn)在各種影音產(chǎn)品的優(yōu)點及不足。比如說有些傳統(tǒng)mp4影音設(shè)備功能較少,不能滿足用戶的需求,有些功能齊全的,但是質(zhì)量關(guān)過不去,使很多消費(fèi)者都不敢恭維。即使有些功能較多的名牌產(chǎn)品,但是其價格又比較昂貴,不是一般的消費(fèi)者所能購買的。但是針對這些不足,我們進(jìn)行開發(fā)出了所以本系統(tǒng)的開發(fā)將帶來很大的經(jīng)濟(jì)效益。1. 本mp4系統(tǒng)實現(xiàn)了多種別的系統(tǒng)不具有的功能,對一些問題作了簡化處 理,尚不完善,離實際應(yīng)用還有一段距離。 2. 有些功能較多質(zhì)量較好的mp4系統(tǒng)價格昂貴。 3. 有些價格便宜,但是功能不全,滿足不了

7、消費(fèi)者的需求。 1. 3 課題目的 通過對現(xiàn)在流行的各種mp4影音系統(tǒng)的分析,我們發(fā)現(xiàn)市場上的軟件過于繁瑣,操作比較復(fù)雜,而其中軟件的許多功能都沒集成在一起,造成了想要一個功能又得另購產(chǎn)品的缺陷。本系統(tǒng)是集別的系統(tǒng)所沒有功能的多動能影音系統(tǒng),操作簡單使用方便。既實用又時尚娛樂。它的人性化設(shè)計更能贏得使用者的青睞。本系統(tǒng)是基于arm9的,并以s3c2410-arm9處理器作為硬件平臺核心再用qt embedded圖形界面開發(fā)技術(shù)和mplayer linux視頻處理技術(shù)式。有這些作為基礎(chǔ),使的該系統(tǒng)的界面更人性化,影音功能更是達(dá)到了極致。它獨(dú)有的計算器功能和提醒功能更是獨(dú)樹一幟。為使用者帶來更多方

8、便。因此我們準(zhǔn)備開發(fā)出具有以下特點的小型進(jìn)銷存軟件: 1. 界面清晰、功能多而實用。程序分析和設(shè)計過程比較規(guī)范,即使在一些比較復(fù)雜的系統(tǒng)中,多家分析也可以弄清楚。 2. 風(fēng)格友好化,操作簡單。 3. 目標(biāo)系統(tǒng)必須具有可靠性、安全性、可維護(hù)性、可移植性等,對于不同的倉庫人員授予不同的操作權(quán)限,具有定期數(shù)據(jù)備份功能。 4. 以采用現(xiàn)在流行的mplayer 視頻處理技術(shù),提高了使用者的試聽享受。 5. 同時他是用arm開發(fā)的,所以價格也相當(dāng)?shù)暮侠?。第二?系統(tǒng)設(shè)計2.1 系統(tǒng)總體設(shè)計基于arm9的影音系統(tǒng)設(shè)計實現(xiàn)功能:支持多種格式的音頻、視頻文件的媒體播放功能,日歷功能,定時提醒功能、txt文本閱讀

9、功能、相冊、游戲、通訊錄功能。根據(jù)設(shè)計功能將整體設(shè)計分為四大部分(見圖2-1):1、影音基本功能部分,此部分為音樂播放、視頻播放兩個模塊;2、特色功能部分,此部分分為提醒、計算器兩個模塊;3、附加功能部分,此部分分為txt閱讀器、電子相冊、游戲個模塊; 4、實用功能部分,此部分分為通訊錄、日歷;多功能影音系統(tǒng)附加功能實用功能特色功能影音功能通訊錄提醒計算器音樂播放游戲閱讀電子相冊日歷視頻播放 見圖2-1。2.2開發(fā)環(huán)境與硬件平臺1、arm平臺基于arm9 mp4的影音系統(tǒng)選取三星s3c2410-arm9處理器作為硬件平臺核心,arm9系列具有良好的性能,能夠流暢的進(jìn)行音樂、視頻的播放,其低功耗

10、性也能為平臺提供良好的續(xù)航能力。由于要用于視頻播放,所以需要一個相對較為寬大的屏幕,我們將用戶的輸入設(shè)備定位為觸摸屏,決定選取410像素*520像素的觸摸屏,綜合以上條件選取博創(chuàng)公司的s3c2410/p270平臺為開發(fā)硬件載體。2、開發(fā)環(huán)境在軟件平臺選取上,選擇了linux嵌入式操作系統(tǒng)作為軟件開發(fā)平臺,linux為開源平臺,在開發(fā)成本上較為低廉,同時linux具有豐富硬件驅(qū)動,最重要的是linux平臺的可裁剪性,通過對內(nèi)核和硬件驅(qū)動的裁剪,可以實現(xiàn)系統(tǒng)的小巧化。圖形界面方面,選取了諾基亞公司的qt圖形界面開發(fā)框架,進(jìn)行用戶交互圖形界面的開發(fā)。qt擁有良好的跨平臺性,具有專門用于嵌入式linu

11、x的版本,在嵌入式環(huán)境下qt直接訪問frame buffer,執(zhí)行效率高,而且qt具有豐富的類庫,通過調(diào)用api可實現(xiàn)設(shè)計的全部功能。2.3功能模塊設(shè)計1、音樂播放器模塊音樂播放模塊的設(shè)計從邏輯層面可以分為三個層:輸入層,播放層,用戶層(見圖2-2)。首先是由輸入層即文件過濾器負(fù)責(zé)將音樂文件夾中的音頻文件的文件名稱傳送給播放層,播放層使用的是強(qiáng)大的mplayer播放器。接著由播放層進(jìn)行解碼、播放,并把文件信息傳遞給用戶層,最后用戶層將信息顯示給用戶。利用qt框架編寫一個友好的用戶界面作為用戶層,通過這個前臺界面與mplayer進(jìn)行通信,可以控制mplayer播放器。對mplayer播放器的控制

12、主要有以下幾個方面:給mplayer播放器提供輸入文件;在mplayer播放音樂時通過提供的用戶界面對mplayer進(jìn)行同步控制,例如播放/暫停,快進(jìn)/快退。用戶界面 調(diào)用 播放完畢mplayer 加載音頻輸出設(shè)備驅(qū)動程序 輸出 輸出圖2-2音樂播放模塊設(shè)計框圖及實際效果圖2、視頻播放器模塊視頻播放器的后臺同樣利用功能強(qiáng)大的mplayer播放器。與播放音樂相近,在進(jìn)行視頻播放時,視頻播放模塊從邏輯層面可以分為三個層次:輸入層、播放層(音頻解碼和視頻解碼)、用戶層(見圖2-3)。視頻播放器的輸入層和音頻播放器的輸入層功能是一樣的,主要的差別在其他兩個層次。在播放層使用mplayer對輸入的文件進(jìn)

13、行音頻和視頻播放,并控制視頻顯示的位置,最后有用戶層對整體播放進(jìn)行控制。利用qt提供用戶界面實現(xiàn)用戶層功能,通過這個界面向mplayer提供輸入文件,在mplayer播放文件時可以通過這個界面對mplayer進(jìn)行同步控制,主要控制有快進(jìn)、快退、暫停和音量控制等。 調(diào)用 播放完畢 用戶界面mplayer音頻輸出設(shè)備 加載 輸出驅(qū)動程序 視頻輸出設(shè)備 輸出 圖2-3視頻播放模塊設(shè)計框圖及實際效果圖3、通訊錄模塊通訊錄功能是直接用qt4編寫而成的通訊錄模塊,讓后在主界面直接用按鈕的信號槽連接到通訊模塊只要單擊通訊按鈕,就能彈出通訊錄的對話框,然后就可以直接進(jìn)行操作。通訊錄里面有一個add的按鈕可以添

14、加通訊人地址,填好后直接ok保存。然后在界面上提供的26個字母那里根據(jù)通訊人的姓名拼音就可以找到相關(guān)信息,這個功能實用方便(圖2-4)。通訊錄查 詢修改彈出對話框調(diào)用通訊按鈕主界面圖2-4通訊錄設(shè)計框圖及實際效果圖4、提醒模塊 提醒塊功能為定時的播放提醒音樂,為用戶提供提醒的功能。主要有用戶界面、定時器、提醒音樂播放模塊三個模塊(見圖2-5); 提醒音樂播放模塊:由定時器控制播放對其進(jìn)行控制,同樣利用mplayer循環(huán)播放提醒音樂; 定時器:定時器獲取用戶輸入的時間,并以此時間為一個周期,循環(huán)得向提醒音樂播放模塊發(fā)送播放指令,實現(xiàn)定時提醒的功能; 用戶界面:設(shè)置了輸入時間和選取音樂兩個可選選項

15、,同時添加了用于啟動定時提醒功能的開始按鈕和返回主界面的返回按鈕。圖2-5定時提醒設(shè)計框圖及實際效果圖5、電子書電子書提供給用戶電子書閱讀功能,設(shè)計如圖2-6。電子書格式為常見的txt格式,主要通過文檔選擇器對設(shè)定的電子書目錄進(jìn)行檢索,通過文件過濾器過濾,列出txt格式文檔,用戶選擇文件后文檔選擇器將文檔名稱傳送給文檔瀏覽器,文檔瀏覽器讀取txt文檔中的內(nèi)容,顯示在文本框中,供使用者瀏覽;樣式選擇器提供給用戶顏色選擇對話框,用戶可以選取喜歡的文字顏色、字體顏色,樣式選擇器則根據(jù)選擇控制文檔瀏覽器中對應(yīng)的顏色屬性,緩解用戶閱讀電子書時引起的視覺疲勞。文本檔選擇器txt文檔選擇樣式選擇器文本瀏覽器

16、設(shè)置文字 圖2-6文本閱讀器設(shè)計框圖6、電子相冊電子相冊模塊設(shè)計在整個系統(tǒng)的主界面上,主界面分為功能按鈕區(qū)和圖片顯示區(qū),其中按鈕區(qū)由啟動各功能的按鈕組成,音樂播放按鈕、視頻播放按鈕、倒車視頻按鈕、定制提醒按鈕和電子書閱讀器按鈕,分別用于啟動各自對應(yīng)的功能。圖片顯示區(qū),即電子相冊模塊有兩種工作模式,如圖2-7。模式一為圖片顯示,對用戶選定圖片的圖片進(jìn)行定格顯示,使得所選圖片為主界面主題圖片,豐富主界面樣式;模式二為圖片瀏覽,通過圖片顯示控制程序與用戶交互,順次顯示圖片文件夾下的圖片,實現(xiàn)電子相冊的圖片的瀏覽功能。顯示控制 圖片切換圖片選擇圖片顯示圖片瀏覽圖2-7電子相冊模塊設(shè)計框圖及實際效果圖7

17、、游戲模塊游戲模塊為用戶體用休閑娛樂的功能,這個游戲是用qt編寫而成的操著簡單,但有很好的娛樂性它是通過在主界面顯示按鈕然后再通過里面的函數(shù)調(diào)用游戲程序彈出游戲界面的對話框,就可以進(jìn)行游戲(圖2-8)。彈出游戲按鈕游戲操作調(diào)用內(nèi)部游戲程序主界面顯示 圖2-8游戲模塊設(shè)計框圖及實際效果圖8、 日歷模塊 日歷模塊和通訊模塊的集成相似,這個模塊也是直接由qt4編寫而成。通過主界面的日歷按鈕的信號槽連接日歷模塊,當(dāng)單擊按鈕時直接調(diào)用日歷的功能模塊然后彈出日歷對話框(圖2-9)。彈出日歷按鈕查詢調(diào)用內(nèi)部qt編寫的日歷模塊主界面顯示 圖2-9日歷模塊設(shè)計框圖及實際效果圖9、計算器模塊 計算機(jī)模塊的功能是為

18、使用者提供計算的功能,很難想象一個影音系統(tǒng)也能把計算器集成在一起。這個模塊的集成跟游戲功能的模塊相似。這個計算器也是用qt編寫而成。也通過在主界面顯示相應(yīng)的按鈕然后再調(diào)用計算器的程序代碼從而實現(xiàn)計算器的功能。這個功能方便實用(圖2-10)。彈出計算器按鈕計算器操作調(diào)用內(nèi)部計算器程序主界面顯示圖2-10計算器模塊設(shè)計框圖及實際效果圖第三章 軟件設(shè)計與實現(xiàn)3.1平臺搭建1、開發(fā)環(huán)境的編譯與移植下載/兩個源碼包qt-x11-opensource-src-4.5.0和qt-embedded-linux-opensource-src-4.5.0;進(jìn)行qt編譯,

19、共需要編譯三個部分:qt-x11,用于在x86平臺下的linux操作系統(tǒng)中,支撐虛擬幀緩存運(yùn)行;qt embedded,運(yùn)行在qt虛擬幀緩存qvfb環(huán)境下,主要用于qt程序的仿真和測試;qt embedded-arm,主要用于交叉編譯qt程序,編譯時添加了tslib觸摸屏支持包,以支持觸摸屏。qtlib文件的移植,對編譯qt embedded-arm生成的qt類庫進(jìn)行移植,在制作的根文件系統(tǒng)中添加qtlibgui、qtlibcore、qtlibnetwork三個主要的庫文件,和字體文件simkai.ttf以支持中文顯示。嵌入式運(yùn)行的環(huán)境的設(shè)置,首先要配置qt和tslib運(yùn)行的環(huán)境變量,在開發(fā)板

20、上的/etc/profile文件中添加ld_library_path、qws_display等環(huán)境變量,其次要調(diào)用tslib中的ts_calibrate程序?qū)τ|摸板進(jìn)行校正。2、mplayer的編譯與移植mplayer是一款開源的視頻播放器,支持多種文件格式,而且mplayer支持嵌入式環(huán)境下的幀緩存模式,所以選擇mplayer作為音樂、視頻播放的后臺程序,同時添加libmad 音頻解碼庫,以擴(kuò)充mplayer對音頻文件的支持。下載首先是下載一個mplayer-1.0pre7try2.tar.bz2 播放器,解壓后,配置mplayer的編譯選項,將其平臺設(shè)為arm平臺,進(jìn)行靜態(tài)編譯,生成mpl

21、ayer的arm指令可執(zhí)行文件。3.2音樂播放器模塊音樂播放器的實現(xiàn)利用了qt類庫中qprocess類。通過這個類調(diào)用mplayer播放器,使用qprocess類中的write()、readline()這兩個方法與mplayer進(jìn)行管道通信,實現(xiàn)對mplayer的控制。主要用到的類還有qpushbutton,qtimer,qslider等。通過點擊不同的qpushbutton的實例所發(fā)出的clicked()信號和相應(yīng)的槽相聯(lián)實現(xiàn)相應(yīng)的功能,這些槽實現(xiàn)的功能有:播放/暫停,快進(jìn)/快退,調(diào)節(jié)音量 ,停止等。另外,音樂播放器還有上一曲/下一曲,播放模式的切換(見圖3-1)。 與mplayer的交互:

22、對mplayer的控制主要是通過qprocess類的write()方法向mplayer發(fā)送命令,mplayer得到命令后執(zhí)行相應(yīng)的操作,對于mplayer的輸出進(jìn)行如下處理:mplayer的輸出被qprocess捕獲,每捕獲一行,qprocess就將捕獲到信息寫進(jìn)qprocess輸出緩沖隊列中,然后發(fā)送一個readyreadstandardoutput()信號通知應(yīng)用程序有輸出可以提取,最后應(yīng)用程序通過readline()方法從qprocess的輸出緩沖隊列中讀取一行輸出。 播放控制:播放開始時,讀取播放文件的播放時間長度并將這個時間值設(shè)定位qslider滑動塊類的最大值,然后通過qtimer

23、類的實例定期的發(fā)送timeout()信號,將這個信號和特定的槽相聯(lián),此功能槽調(diào)用qprocess的write()方法向mplayer播放器發(fā)送命令,當(dāng)qprocess將mplayer的輸出數(shù)據(jù)收集完畢后,發(fā)送readyreadstandardoutput()信號來調(diào)用用于解析輸出的槽函數(shù)獲得mplayer播放器當(dāng)前的時間,并將當(dāng)前時間值傳給滑動塊實現(xiàn)播放進(jìn)度條。 播放列表的實現(xiàn):在啟動播放器前先遍歷特定的目錄,獲取目錄下的文件名稱并添加到qstringlist實例中,然后結(jié)合qlistwidget類制作成播放列表。播放模式共有四種:單曲播放、單曲循環(huán)、列表循環(huán)、隨機(jī)播放。這四種播放由一個整形變

24、量來表示,每次播放完一首歌曲之后qprocess就會發(fā)送一個finished(int,qprocess:exitstatus)信號,將這個信號和相應(yīng)槽鏈接在一起,這個槽實現(xiàn)播放下一曲的功能,在播放前先檢查播放模式以確定下一曲的文件名。播放/暫停,快進(jìn)/快退,調(diào)節(jié)音量,停止這幾項功能均利用qpushbutton實現(xiàn),當(dāng)一個qpushbutton被點擊時就會發(fā)送一個clicked()信號,與其對應(yīng)的槽就會向mplayer發(fā)送相應(yīng)的命令,實現(xiàn)相應(yīng)功能。圖3-1音樂播放模塊流程3.3視頻播放器模塊 視頻播放器模塊的編譯,視頻播放器的實現(xiàn)是利用qprocess和mplayer的slave模式實現(xiàn)的。首先

25、是下載一個mplayer-1.0pre7try2.tar.bz2 播放器。然后拷貝到arm2410cl目錄。用tar -jxvf mplayer-1.0pre7try2.tar.bz2 命令,然后回車。解壓之后生成mplayer-1.0pre7try2目錄。用cd命令進(jìn)入到mplayer-1.0pre7try2 目錄。再用gmake 命令,執(zhí)行這個的時候時間可能會稍微長一點等這個條命令執(zhí)行完之后再gmake install 一下,等這條命令執(zhí)行完之后mplayer 播放器就安裝好了。然后把這個目錄的絕對路徑添加到視頻的movie.cpp 和音樂的music.cpp 的路徑中就可以調(diào)用這個播放器

26、了,因此這個系統(tǒng)的影音功能就可以實現(xiàn)了。(圖3-2) 開始 調(diào)用mplayer 播放器 加載可播放 的視頻文件選擇可播放的視頻文件判斷是否播放 是結(jié)束圖3-2視頻播放模塊流程3.3通訊錄模塊通訊錄的實現(xiàn)方法是用linux平臺下的qt4編寫而成的通訊錄源代碼,然后主界面通過qt信號槽的功能調(diào)用通訊錄模塊,從而達(dá)到了通訊錄的功能。當(dāng)用戶在通訊錄對話框進(jìn)行操作時(圖3-3)。開始主界面通訊按鈕通訊對話框增加通訊地址判斷是否添加是 否結(jié)束圖3-3通訊錄模塊流程3.4提醒模塊提醒的實現(xiàn)方法為使用定時器進(jìn)行周期性的循環(huán)播放音樂。運(yùn)行流程見圖3-4具體實現(xiàn)利用qt中的qtimer類進(jìn)行定時,qtimer類為

27、qt的定時器類,對其初始化一個時間量后其可以實現(xiàn)倒計時功能。在用戶輸入周期時間并開啟定時提醒后,程序會通過一個啟動信號激活qtimer類開始進(jìn)行倒計時,當(dāng)qtimer類倒計時減為0時,會通過信號和槽的機(jī)制發(fā)送一個信號給已構(gòu)造好的槽函數(shù),此函數(shù)功能為調(diào)用后臺的mplayer播放提醒音樂并重新對qtimer類進(jìn)行賦值,使其從新進(jìn)行倒計時,如此循環(huán),實現(xiàn)了定時播放音樂進(jìn)行提醒的功能(圖3-4)。圖3-4定時提醒模塊流程3.5 電子書txt閱讀器功能為一個可以加載txt格式文本并顯示的電子書閱讀器。主要使用qt類庫中的qtextedit類作為文本顯示的載體,將qtextedit類屬性置為只讀,屏蔽qt

28、extedit的編輯功能,只是使用其文本的顯示和文本屬性設(shè)置的功能。txt文本閱讀器模塊運(yùn)行流程見圖3-5。在文件選擇器中,使用qdir和qlistwidget類,利用qdir類讀取文本文件夾路徑下的文件,并使用“*.txt”過濾字符串對文件名進(jìn)行過濾,只讀取txt文檔的文件名并將返回值傳送給qlistwidget類;qlistwidget類為可選擇列表類,使用qlistwidget類顯示由qdir類返回的文本名列表,供用戶選擇要閱讀的文本。當(dāng)用戶選擇某一文件時,qlistwidget將文件已選擇信號發(fā)送給openfile槽函數(shù),openfile函數(shù)使用qfile類接收已選文件的文件名,再利用

29、qtextstream類讀取文件中的內(nèi)容,最后使用qtextedit中的settext方法使qtextedit顯示所選文件的文字內(nèi)容。利用qt類庫中的qcolordialog顏色選擇對話框?qū)崿F(xiàn)字體與背景顏色改變的功能,qcolordialo提供給用戶顏色選擇界面,并把用戶選擇的顏色返回給qtextedit,qtextedit最終利用qt類庫中qpalette調(diào)色板類設(shè)置文字顏色和背景顏色,達(dá)到顏色的改變效果(圖3-5)。圖3-5 閱讀器流程3.6電子相冊電子相冊功能的實現(xiàn)主要是利用qt類庫中的qpixmap類,qpixmap為2d圖形界面類,使用qpixmap顯示圖片可以方便的調(diào)整顯示大小,并

30、利用qpainter中的drawpixmap方法繪制到電子相冊界面上,進(jìn)行圖片顯示,實現(xiàn)圖片顯示功能。同時對圖片顯示位置添加鼠標(biāo)事件響應(yīng)qmouseevent,當(dāng)鼠標(biāo)在圖片矩陣內(nèi)點擊時,對此鼠標(biāo)事件進(jìn)行響應(yīng),進(jìn)入圖片瀏覽模式。圖片瀏覽模式是利用qpushbutton按鈕類,響應(yīng)按鈕按下事件,按照字母順序讀取圖片目錄下的下一個圖片文件,并加載到電子相冊窗口中進(jìn)行顯示,實現(xiàn)圖片的切換和瀏覽功能。讀取圖片目錄中文件信息時同樣使用了qdir類。電子相冊運(yùn)行流程(圖3-6)。 圖3-6電子相冊模塊流程3.7 游戲 游戲功能的實現(xiàn)主要是利用qt類庫中的gtk類,游戲本身也是基于qt編寫而成的。游戲模式是利

31、用qpushbutton按鈕類,響應(yīng)按鈕按下事件,然后調(diào)用內(nèi)部游戲程序,彈出游戲界面,然后就可以進(jìn)行游戲操作。游戲運(yùn)行流程(圖3-7)。開始初始化界面游戲按鈕調(diào)用游戲程序彈出游戲窗口判斷是否游戲否 是游戲 圖3-7游戲模塊流程3.8 計算器游戲功能的實現(xiàn)主要是利用qt類庫中的gtk類,游戲本身也是基于qt編寫而成的。游戲模式是利用qpushbutton按鈕類,響應(yīng)按鈕按下事件,然后調(diào)用內(nèi)部計算器程序模塊,彈出計算器對話框,然后就可以進(jìn)行計算操作,運(yùn)行流圖(圖3-8)。開始初始化界面計算器按鈕調(diào)用計算器模塊彈出計算器窗口判斷是否游戲 否是計算操作結(jié)束 圖3-8計算器模塊流程第四章 系統(tǒng)界面設(shè)計系

32、統(tǒng)界面設(shè)計本系統(tǒng)實現(xiàn)的功能有:日歷,音樂播放器,視頻播放器,定時提醒,電子書,電子相冊,計算器,通訊錄等功能。這些功能都是基于qt設(shè)計而成的,qt的許多特性都是在集成qobject的基礎(chǔ)上用標(biāo)準(zhǔn)c+來實現(xiàn)的。其它像對象之間通信的機(jī)制和動態(tài)屬性系統(tǒng)需要qt自身moc提供的元對象系統(tǒng)的支持。元對象系統(tǒng)(超對象系統(tǒng))(the meta-object)是c+的一種擴(kuò)展,使得程序設(shè)計語言更加適合真是的gui程序設(shè)計。盡管模板被用來擴(kuò)展c+,但是元對象系統(tǒng)用c+提供了模板所不能完成的便利。系統(tǒng)一開始就有一個歡迎界面,然后點擊歡迎界面的按鈕就彈出了我們系統(tǒng)中所設(shè)計的所有功能按鈕集合的這樣一個界面最上面的是電

33、子相冊,點擊一下就界面的下方將彈出兩個左右可以點擊的按鈕點擊左右的按鈕就相應(yīng)的有圖片的切換。下面兩排的是功能按鈕,點擊相應(yīng)的按鈕就有相應(yīng)的功能出現(xiàn),方便實用。 歡迎界面截圖 功能按鈕界面截圖第五章 功能與特色5.1實現(xiàn)功能本系統(tǒng)實現(xiàn)的功能有:音樂播放器,視頻播放器,定時提醒,閱讀,電子相冊,通訊錄,游戲,計算器等功能。下面對已實現(xiàn)的各項功能進(jìn)行敘述: 開機(jī)后呈現(xiàn)在用戶面前的主界面以一張圖片為背景,其他功能的按鈕在下面一字排開。當(dāng)點擊圖片的上半部分時,背景圖片就會縮小,此時就激活了電子相冊的功能,圖片的左右就會出現(xiàn)連個按鈕用來選擇圖片,當(dāng)再次點擊圖片是就會退出電子相冊同時將選中的圖片作為背景圖片

34、。點擊音樂播放器圖標(biāo)的時候就會出現(xiàn)音樂播放器的主界面,除播放音樂功能外還提供了查看播放列表、改變播放模式、調(diào)節(jié)音量、播放/暫停、停止等功能。選擇視頻播放時,首先出現(xiàn)的所有視屏文件的列表,由用戶雙擊列表項來選擇要播放的視頻,所選視頻會以全屏的方式進(jìn)行播放,播放的界面左上角設(shè)有按鈕,點擊會出現(xiàn)播放控制按鈕,用于重新選擇播放文件。txt閱讀器主要實現(xiàn)了txt文本閱讀功能,主界面為一個文本框,窗口頂部有打開按鈕,使用此按鈕可列出文本文件夾路徑下所有txt的文檔,雙擊某個列表項后就會在文本框中顯示對應(yīng)的txt文檔內(nèi)容,利用“前一頁” 、“后一頁”按鈕可進(jìn)行文本翻頁,文本框的下面兩個按鈕一個用來改變文本框

35、的背景顏色,另一個是用來改變文字的顏色。定時提醒功能的控制面板上有時間間隔選擇按鈕,用于選擇定時周期,定時提醒功能開啟后會定時播放提醒音樂,同時定時提醒模塊可以后臺運(yùn)行。5.2方案特色本系統(tǒng)在設(shè)計方面,人性化設(shè)計是本系統(tǒng)的特色:1、操作界面設(shè)定為觸摸屏,操作界面直觀;2、按鈕大小與手指尖接近,操作方便。在功能方面有很多同類系統(tǒng)無法比擬的功能:1、 計算器模塊在日常生活中計算是經(jīng)常發(fā)生的事,如果有一個這樣的設(shè)備在身邊的話再方便不過了,所有這個設(shè)備非常的實用。2、定時提醒模塊定時提醒功能,是針使用者在遇到有重要的事情時又容易忘記而設(shè)計的,當(dāng)遇到這種情況是我們就可以用這個來及時提醒,避免出錯。3、

36、日歷模塊 日歷模塊可以讓使用者隨時知道日子,在日常生活當(dāng)中也很實用。第6章 總結(jié)與展望總結(jié):在設(shè)計mp4應(yīng)用程序時遇到過一些問題,現(xiàn)整理總結(jié)了一下:1 在編譯文件的時候make一下會報錯。 這就需要重新配置一下qt的編譯環(huán)境。具體步驟:首先:把qt-x11-opensource-src-4.4.0.tar.gz arm-linux-gcc-3.4.1.tar.bz2 這些文件拷貝到文件拷貝到/home/sprife/qt4/for_pc 目錄下。然后:#cd /home/#mkdir sprife#cd sprife#mkdir qt4#cd qt4#mkdir for_pc#cd for_p

37、c#cp /arm2410cl/gui/qt/src/qt-x11-opensource-src-4.4.0.tar.gz ./安裝編譯器arm-linux-gcc-3.4.1:rootbc src#cd /arm2410cl/gui/qt/toolsrootbc tools#tar xjvf arm-linux-gcc-3.4.1.tar.bz2 -c ./rootbc tools#vi /root/.bash_profile /打開文件將該文件中的path 變量改為path=$path:$home/bin:/arm2410cl/gui/qt/tools/usr/local/arm/3.4.

38、1/bin/,存盤后退出。rootbc tools# source /root/.bash_profile如果安裝正確的話,在任意路徑下輸入ar 后按tab 鍵即可列出編譯器文件。qt 本機(jī)環(huán)境的搭建需要以下幾步:#cd /home/sprife/qt4/for_pc#tar xzvf qt-x11-opensource-src-4.4.0.tar.gz#cd qt-x11-opensource-src-4.4.0#./configure -prefix /usr/local/trolltech/qt-x11-4.4.0出現(xiàn)安裝提示時選擇yes 注意大小寫#gmake#gmake instal

39、l 做完這些操作后,編譯出現(xiàn)的問題就可以解決了。2 在上面的問題解決之后,有的時候還會出現(xiàn)報:“make: warning: file has modification time 1.1e+05 s in the future /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake -unix -o makefile ”的錯誤。及提示系統(tǒng)的時間的錯誤。這是由于系統(tǒng)時間和實際的時間不相同所造成的,這個問題的解決方法比較簡單,且有兩種方法:1. 直接把系統(tǒng)的時間改成正確的時間即可,然后重新編譯的時候就不會

40、報錯了。2.用#rm -rf *.o *.pro makefiler wj 命令,刪除一些文件。然后重新用: #/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake -project #/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake 執(zhí)行了這些命令之后,然后重新make一下就不會報錯了。3 所以步驟都做好了之后然后用命令./wj 執(zhí)行程序,能彈出對話框,但是不顯示圖片。出現(xiàn)這個問題的原因是因為在源程序代碼中調(diào)用圖片代碼中所用的路徑不 對,因此調(diào)用不到

41、文件夾中自己想要的圖片。這個問題也很好解決:只需把源代碼中調(diào)用圖片的路徑改為現(xiàn)在文件夾所處位置的圖片路徑即可。如主界面所顯示圖片,它的路徑是在dk.cpp 文件中的:p.setbrush(qpalette:background,qbrush(qpixmap(/mnt/hgfs/wmshare /wj/image/movie_bg.png); 這段語句中。只需把:/mnt/hgfs/wmshare/wj/image/movie_bg.png。這個路徑弄對即 可。4 在主界面按電影和音樂時不能播放的問題。 這是由于播放器沒有正確安裝的原因。解決方法: 首先是下載一個mplayer-1.0pre7t

42、ry2.tar.bz2 播放器。然后拷貝到arm2410cl目錄。用tar -jxvf mplayer-1.0pre7try2.tar.bz2 命令,然后回車。解壓之后生成mplayer-1.0pre7try2目錄。用cd命令進(jìn)入到mplayer-1.0pre7try2 目錄。再用gmake 命令,執(zhí)行這個的時候時間可能會稍微長一點等這個條命令執(zhí)行完之后再gmake install 一下,等這條命令執(zhí)行完之后mplayer 播放器就安裝好了。然后把這個目錄的絕對路徑添加到視頻的movie.cpp 中的const qstring dir(/mnt/hgfs/wmshare/wj/movie);c

43、onst qstring path(/arm2410cl/mplayer-1.0pre7try2/mplayer);const qstring icon = /mnt/hgfs/wmshare/wj/item/app.png; 和音樂的music.cpp const qstring dir = /mnt/hgfs/wmshare/wj/music;const qstring icon = /mnt/hgfs/wmshare/wj/item/app.png;const qstring path = /arm2410cl/mplayer-1.0pre7try2/mplayer;的路徑中就可以調(diào)用這

44、個播放器了。5 在添加功能模塊的時候遇到的如。in file included from all_show.cpp:1:all_show.h:74: error: iso c+ forbids declaration of tetrixspace with no typeall_show.h:74: error: expected ; before * tokenall_show.cpp: in member function void all_show:tetrixspace_slot():all_show.cpp:186: error: p_tetrixspace_play was not

45、 declared in thisscopeall_show.cpp: in member function void all_show:tetrixspace_end():all_show.cpp:198: error: p_tetrixspace_play was not declared in thisscopeall_show.cpp:199: error: type argument given to delete, expected pointermake: * all_show.o 錯誤 1。這里提示的錯誤是:文件all_show.h 的第74行 沒有類 tetrixspace。

46、 根據(jù)查找發(fā)現(xiàn)是由于在all_show.h里面的function button 那里面 tetrixspace *p_tetrixspace_play; 中的tetrixspace 的名稱與該模塊中tetrixspace.h 文件中class tetrixspace 所定義時的文件名不同所造成的。只要把tetrixspace。改成tetrixspace 。保存,然后重新make一下就可以了。6 在添加新模塊的時候還會經(jīng)常遇到的如。 main.o(.text+0x0): in function main: multiple definition of mainall_show.o(.text+0

47、x20e4): first defined here/usr/bin/ld: warning: size of symbol main changed from 881 in all_show.o to 140 in main.ocollect2: ld returned 1 exit statusmake: * wj 錯誤 1這個錯誤是由于添加的模塊中含有一個main函數(shù),而程序的主程序里面已經(jīng)有一個主函數(shù)了這個與一個程序只有一個主函數(shù)的規(guī)則相沖突了所以要把模塊中的main.cpp 這個文件刪掉然后再 #make clean #make 一下就不會出錯了。7 用簡單的方法添加新功能模塊。一般

48、的新功能模塊源代碼當(dāng)中可能會出現(xiàn)不止一個.h 的情況,因為會不知道那個頭文件才應(yīng)該添加到主頭文件當(dāng)中的那個頭文件,所以這就會給在添加到主函數(shù)中時造成不必要的麻煩。經(jīng)過多次的操作后,得出了一個比較簡單的方法。就是每個功能模塊當(dāng)中都會有一個主函數(shù)main.cpp 打開這個文件看到的第一個.h文件即是要添加到主頭文件當(dāng)中的頭文件。但是在添加時,當(dāng)在主頭文件當(dāng)中定義公能模塊的頭文件的名字時,它的名字的大小寫也應(yīng)該注意。可以直接打開被添加的功能模塊的頭文件查看它的名字,做到這些,應(yīng)該就不會出錯了。8 主機(jī)與開發(fā)板的連接問題。 在主機(jī)和開發(fā)板的連接時,由于設(shè)置不當(dāng)?shù)脑挘矔霈F(xiàn)連接不上的問題: 1.主機(jī)和

49、開發(fā)板的ip應(yīng)該在同一網(wǎng)段。如果不相同的話可以用ifconfig eth0 21 這個命令來把它們的ip設(shè)置為同一網(wǎng)段。 2.nfs設(shè)置不正確,(linux系統(tǒng)的開始-系統(tǒng)設(shè)置-服務(wù)器設(shè)置-nfs)其中掛載目錄可以設(shè)為根目錄“/”,主機(jī)ip應(yīng)該設(shè)置為那個網(wǎng)段的所有ip 例:192.168.1.* 。權(quán)限設(shè)為 讀/寫。 用戶訪問設(shè)為:把遠(yuǎn)程用戶當(dāng)作本地根用戶。 3.掛載方式,可以用終端的方式掛載,或者直接在linux中用命令 minicom 掛載。用命令minicom掛載的時候應(yīng)該配置一下里面的參數(shù)。首先:#minicom 然后ctrl+a 按z。彈出對話框后,按o選擇se

50、rial port stup 然后按a 把ttys1改為ttys0,按e再按i確定它后面的參數(shù)給我了115200.然后保存退出。 4.掛載命令: mount -t nfs -o nolock,wsize=4096,risze=4096 21:/arm2410cl /mnt/nfs 這就是掛載的標(biāo)準(zhǔn)命令格式,如果書寫錯誤的話也會出現(xiàn)錯誤。9 掛載過去的wj可應(yīng)用程序在開發(fā)板上不能運(yùn)行。 出現(xiàn)這個問題的原因可能有很多,這里就提一下遇到的兩個。第一個:可能是在主機(jī)上編譯的可運(yùn)行環(huán)境不是在arm平臺下執(zhí)行的而是:用file 命令查看它的運(yùn)行環(huán)境:#file wj 命令查看:wj:

51、 elf 32-bit lsb executable, intel 80386, version 1 (sysv), for gnu/linux 2.2.5, dynamically linked (uses shared libs), not stripped這個是在intel 80386 操作系統(tǒng)平臺下運(yùn)行的,但是我們是要再arm平臺下運(yùn)行。解決方法:#make clean #rm -rf *.o *.pro wj makefile#/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/bin/qmake -project#/home

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論