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