嵌入式機車車輛車載播放系統(tǒng)軟件設(shè)計與實現(xiàn)
6)打開本地文件
Qt和QT/Embedded提供了一套標準的通用對話框為方便程序員進行某些特定功能對話框的編程,其中包括了文件對話框QFileDialog.通過彈出QFileDialog對話框,我們既可以選擇一個或者多個文件以及目錄,也可以輸入文件名或者路徑。它可以限制用戶只能選擇已經(jīng)存在的文件,也可以允許用戶輸入一個新的文件名;此外,使用過濾器,則只能選擇符合特殊標準的文件名。點擊打開按鈕會彈出獲取本地文件路徑和名稱的對話框,當用戶選中后,因為它是本地文件,會直接把地址賦給播放的對象,當播放完后繼續(xù)播放usersong.xml中的下一首。
7)靜音
音量的控制是通過Phonon::VolumSlid e r控件實現(xiàn)的,通過執(zhí)行語句:u i ->volumeSlider->setAudioOutput(audiooutput)將音量的控件連接到了音頻輸出的設(shè)備上,通過語句Phonon::createPath(mediaobject,audiooutput)音頻輸出的設(shè)備和播放的對象mediaobject連接,因此實現(xiàn)靜音功能。
8)顯示歌曲名稱
void Player::setLabel(QString
track)
{
QString filename = mediaObject-
>currentSource()。fileName();
filename = filename.right
( f i l e n a m e . l e n g t h ( ) - f i l e n a m e .
lastIndexOf(‘/’)-1);
this->setWindowTitle(“Player
~”+filename);
}
9)關(guān)閉窗口
雙擊窗體空白處可關(guān)閉播放器。需重定義鼠標雙擊事件調(diào)用close()函數(shù)加以實現(xiàn)。
10)數(shù)據(jù)庫操作
程序中使用SQLite數(shù)據(jù)庫對歌曲及用戶信息進行管理。
SQLite是D.Richard Hipp用C語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它是完全獨立的,不具有外部依賴性,非常健壯。SQLite第一個Alpha版本誕生于2000年5月,至今已經(jīng)有11個年頭,最新版本SQLite3也已經(jīng)發(fā)布。SQLite是完全免費開源的軟件。
SQLite能夠運行在Windows/Linux/Unix等各種操作系統(tǒng)。SQLite源代碼大約3萬行,250KB大小,占用資源非常少。相比Mysql、PostgreSQL這兩款著名的開源數(shù)據(jù)庫,SQLite占用資源更少,處理速度更快,非常適合用于嵌入式系統(tǒng)開發(fā)中。
在系統(tǒng)中采用SQLite數(shù)據(jù)庫對歌曲信息結(jié)構(gòu)進行組織、存儲以及管理。通過使用SQLite建立歌曲信息數(shù)據(jù)庫表,然后就可以在程序通過相關(guān)接口函數(shù)對歌曲信息進行操作,如插入、刪除、更新、查詢等。采用SQLite數(shù)據(jù)庫進行歌曲信息的管理大大降低了編程的復雜性。
在具體的系統(tǒng)數(shù)據(jù)庫模塊中,采用了Qt連接SQLite數(shù)據(jù)庫的方式來操作數(shù)據(jù)庫。Qt框架中QtSql模塊提供了一個平臺無關(guān)且數(shù)據(jù)庫無關(guān)的訪問S Q L數(shù)據(jù)庫的接口。Qt中的每個數(shù)據(jù)庫連接用一個QSqlDatabase對象來表示,同時Qt也使用不同driver來和各種不同數(shù)據(jù)庫的API進行通訊。對于SQLite數(shù)據(jù)庫Qt提供了很好的支持和封裝,通過Qt的相關(guān)類可以很容易的進行數(shù)據(jù)庫操作。
要實現(xiàn)對S Q L i t e 數(shù)據(jù)庫進行操作首先需要創(chuàng)建一個關(guān)于數(shù)據(jù)庫的創(chuàng)建和鏈接的頭文件,然后在頭文件中通過創(chuàng)建QSqlDatabase數(shù)據(jù)庫連接對象來調(diào)用addDatabase()并設(shè)置相關(guān)函數(shù)的屬性,然后在工程文件的最后添加關(guān)于使用數(shù)據(jù)庫的聲明“QT+=sql”.
4.MPlayer播放器的控制
MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如Linux和其他類Unix系統(tǒng)、微軟的視窗系統(tǒng)及蘋果電腦的Mac OS X系統(tǒng)。MPlayer能夠播放大多數(shù)MPEG、VOB、AVI、OGG、VIVO、ASF/WMV、Qt/MOV、FLV、RM等媒體文件。相對其它播放器來說,MPlayer還具有資源占用非常少,不需要任何系統(tǒng)解碼器就可以播放各種媒體格式,在低配置的機器上使用等突出優(yōu)勢。所以對于運算速度相對較弱的嵌入式系統(tǒng)來說,MPlayer是一個很好的選擇。
在本文的系統(tǒng)設(shè)計中,選用了MPlayer作為系統(tǒng)的媒體播放器來進行媒體文件的播放以及控制。在系統(tǒng)的播放模塊中采用Qt的QProcess(進程類)通過start方法調(diào)用slave模式下的MPlayer產(chǎn)生一個進程,然后通過QProcess類的write方法向MPlayer發(fā)送控制命令,實現(xiàn)控制播放的目的。
5.小結(jié)
本論文詳細介紹了如何使用Qt Creator完成車載音樂播放系統(tǒng)的界面設(shè)計及程序代碼的編輯與運行。此車載播放系統(tǒng)可實現(xiàn)的功能如下:
1)具有美觀、易于理解和操作的主界面;
2)可按照多種方式對數(shù)據(jù)庫中的歌曲進行查找;
3)可實現(xiàn)歌曲的播放、暫停,以及上一首和下一首歌曲的切換;
4)所選歌曲可生成播放列表,列表可以循環(huán)播放,列表信息可修改,在列表中雙擊歌曲名稱可播放該歌曲;
5 ) 可對設(shè)備中存儲的歌曲進行刪除;
6)可播放外接存儲器中的歌曲。
同時,系統(tǒng)可以方便地移植到各種嵌入式設(shè)備中。
評論