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

正文內(nèi)容

基于linux的音樂播放器設計與實現(xiàn)論文-資料下載頁

2024-08-27 15:25本頁面

【導讀】本播放器在Linux操作系統(tǒng)平臺下進行開發(fā),使用Qt程序開發(fā)框架實現(xiàn)。播放器的GUI設計,并用Phonon多媒體API實現(xiàn)多媒體控制,最后再用C++編程實現(xiàn)。文件”、“刪除文件”、“切換背景圖標”、“最小化到托盤”等功能。測試表明,本播放器能夠。流暢地運行,并能很好地實現(xiàn)各項功能,并且有一定的容錯能力,達到了設計預期的效果。同時,本播放器在穩(wěn)定性、經(jīng)濟成本等方面都有不錯的表現(xiàn)。

  

【正文】 (showTime(qint64))。 void MainWindow::showTime(qint64 time) { qint64 temp = mediaObjecttotalTime()。 QTime totalTime(0,(temp / 60000) % 60,(temp / 1000) % 60)。 QTime curTime(0,(time / 60000) % 60,(time / 1000) % 60)。 thisuitotalTimeLablesetText(tr(%1 ) .arg((mm:ss)))。 thisuicurTImeLabelsetText(tr(%1 ) .arg((mm:ss)))。 } 18 (2) 暫停 當播放器處于播放狀態(tài)是,想暫停播放歌曲,可以點擊 暫停按鍵時 ,這時將暫停播放,再次點擊此按鍵,將繼續(xù)從當前歌曲暫停處播放。 代碼實現(xiàn): mediaObjectpause()。 (3) 停止 當播放器處于播放、停止狀態(tài)時, 點擊停止按鍵時 ,將停止對當前歌曲的播放。 代碼實現(xiàn): mediaObjectstop()。 (4) 下一首 如果用戶點擊下一首按鈕,系統(tǒng)會判斷當前播放項是否是列表最后一項,如果是,同時允許循環(huán)播放,會跳轉到第一首,如果不是 則 會提示用戶。 代碼實現(xiàn): int index = sourceList。 indexOf(mediaObjectcurrentSource()) + 1。 mediaObjectstop()。 mediaObjectsetCurrentSource((index))。 mediaObjectplay()。 (5) 上一首 如果用戶點擊上一首按鈕,系統(tǒng)會判斷當前播放項是否是列表第一項,如果是,同時允許循環(huán)播放,會跳轉到最后一首,如果不是會提示用戶。 代碼實現(xiàn): int index = (mediaObjectcurrentSource())1。 mediaObjectstop()。 mediaObjectsetCurrentSource((index))。 mediaObjectplay()。 (6) 播放進度的拖動 如果用戶想自己選擇播放進度,可以拖動進度條( seekSlider),由 seekSlider 自動調整到用戶選擇的播放進度。 (7) 打 開 文件 在播放器啟動后,播放器的播放列表默認是空的,需要用戶手動添加播放列表,此時用戶可以通過打開按鈕,彈出打開系統(tǒng)默認的打開 文件對話框選擇歌曲文件。 代碼實現(xiàn): 19 QStringList files=QFileDialog::getOpenFileNames(this,tr(Selec Files to play ) , defaultOpenDir, tr(*.mp3))。 int index=()。 foreach(QString file,files) { (file)。 mediaObjectsetQueue(sourceList)。 } (8) 雙擊播放 在播放列表中顯示著當前的播放播放列表,如果用戶想播放其中的某一首歌曲,可以通過雙擊該項實現(xiàn)歌曲的播放。將播放列表雙擊信號與自定義槽 doubleClicked(int row, int )關聯(lián) 。 代碼實現(xiàn): connect(thisuimusicTable, SIGNAL(cellDoubleClicked(int,int)),this, SLOT(doubleClicked(int,int)))。 void MainWindow::doubleClicked(int row, int ) { mediaObjectsetCurrentSource(sourceList[row])。 } (9) 雙擊系統(tǒng)圖標 為了方便用戶的使用,當用戶雙擊播放器系統(tǒng)托盤圖標時,可以實現(xiàn)播放器界面的顯示與隱藏。將 系統(tǒng) 托盤 trayIcon 的 activated()信號與槽iconActivated(QSystemTrayIcon ::ActivationReason)相關聯(lián)。 代碼實現(xiàn): connect(thistrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(iconActivated(QSystemTrayIcon::ActivationReason)))。 void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason) { switch (reason) { 20 case QSystemTrayIcon::DoubleClick: if(thisisHidden()) { thisshowNormal()。 thissetWindowState(Qt::WindowActive)。 } else thishide()。 break。 } } 這樣當用戶在雙擊系統(tǒng)托盤圖標后,就會實現(xiàn)最小化和還原。 播放器設置 基于 Linux 的音樂播放器,在系統(tǒng)文件中存在一個系統(tǒng)配置文件:,用于保存播放器的相關配置信息。當用戶選擇 Options 選項時,會彈出播放器設置界面,對播放器進行一些設置。如果用戶選擇 OK按鈕,將保存設置。此時系統(tǒng)將修改配置文件。 播放器的設置界面如圖 36 所示 : 圖 36 播放器設置界面 21 QSettings 介紹 Qsettings 是 提供的一個讀取配置文件的類,提供獨立于平臺的程序設置,在windows 平臺,它提供了 ini 文件讀些,注冊表讀寫的功能,而且使用也非常簡單。Qsettings 的 API 是基于 Qvariant, Qvariant 是一種數(shù)據(jù)類型的集合,它包含了大部分通常的 Qt 數(shù)據(jù)類型,比如 QString, QRec, QImage,等等。 函數(shù)原型: QSettings(const QStringamp。 fileName,Format format, QObject * parent= 0)。 其中 QSettings::Format 有兩種 : (1) QSettings::NativeFormat 在 windows 平臺可以讀寫 windows 注冊表 ; (2) QSettings::IniFormat 可以讀寫 ini 格式的配置文件 。 在 Unix/X11 平臺下 這兩個 Format 效果是一樣的 [14]。 QSettings 的使用 在本文中使用 QSettings 類來實現(xiàn)播放器設置 [15],將結果保存在系統(tǒng)文件 中,配置文件內(nèi)容如 圖 37 所示 : 圖 37 文件 (1) minimizeToTray 是否允許播放器最小化到托盤 ; (2) defaultOpenDir 默認添加文件打開目錄 ; (3) skinPath 界面背景圖像路徑 。 首先初始化 QSettings 指針變量 : QSettings *musicSettings = new QSettings(“./config/”,QSettings::IniFormat)。 如果 Minimize 被選中,則修改 文件 minimizeToTray= true, musicSettingssetValue(minimizeToTray,true)。 當用戶點擊 open 按鈕,選擇默認打開文件目錄時,首先獲取默認打開目錄,將打開文件對話框設置為此目錄,然后彈出打開文件對話框,獲取用戶選擇的文件目錄,并且將新目錄輸入文本框中,然后修改配置文件 defaultOpenDir 項的值。 Qstring oldOpenDir=musicSettingsvalue(defaultOpenDir).toString()。 QString defaultOpenDir=QFileDialog::getExistingDirectory(this,Select the default file 22 directory),oldOpenDir)。 thisuifilepathLEditsetText(defaultOpenDir)。 點擊 ok 按鈕,在于 ok 信號相關聯(lián)的槽函數(shù)將執(zhí)行,保存各項設置 : musicSettingssetValue(defaultOpenDir,thisuifilepathLEdittext())。 QSettings 的亂碼問題 由于漢字的存儲不同于英文字符,所以不能使用 ASCII 字符集進行編碼,在使用QSettings 的過程中,會出現(xiàn)亂碼的情況。如 圖 38 所示 : 圖 38 打開文件路徑存儲亂碼 在 Default open path 中,路徑為: /media/E/音樂,但是當寫入 的defaultOpenDir 時,出現(xiàn)了明顯的亂碼現(xiàn)象。為了讓漢字不出現(xiàn)亂碼情況,必須設置QSettings 的編碼方式:musicSettingssetIniCodec(QTextCodec::codecForName(UTF8))。 正常顯示的結果如圖 39 所示 : 圖 39 打開文件路徑存儲正常顯示 播放器界面設計 基于 Linux 的音樂播放器,系統(tǒng)配置文件: ,用于保存系統(tǒng)的相關配置信息,系統(tǒng)啟動的時候,會讀取配置文件獲取必要的界面配置信息,根 據(jù)相關的配置信息設置播放器。 設置背景 根據(jù)配置文件獲取設置圖標路徑,并且初始化圖標 Qstring skinPath=musicSettingsvalue(“skinPath”).toString()。 pauseIcon = QIcon(skinPath+“”)。 運行效果 如圖 310 所示 : 23 圖 310 播放器運行效果圖 圖 310 是播放 器 的運行效果圖 。窗體頂端是:最小化、關閉按鈕,下方是“音量控制條”,再下面一排是:停止、上一曲、播放、下一曲、打開按鈕,然后是:播 放時間、播放進度條和歌曲長度,最下面是 添加文件后的 播放列表。 設置系統(tǒng)托盤圖標 為程序添加體統(tǒng)托盤圖標和上下文菜單 : QIcon icon=QIcon(./image/)。 parentsetWindowIcon(icon)。 parenttrayIcon = new QSystemTrayIcon(parent)。 parenttrayIconsetIcon(icon)。 parenttrayIconsetToolTip(music play)。 parenttrayIconshow()。 QAction *minimizeAction = new QAction(QObject::tr(Minimize), parent)。 parenttrayIconMenu = new QMenu(parent)。 parenttrayIconMenuaddAction(minimizeAction)。 運行 后 右 擊 托 盤圖標彈 出 菜 單 包含五個選項。其中 “ Options” 選項 提供播放器的設 置功能; “ Minimize”、“ Restoration” 選項 用于 實現(xiàn) 播放器的最小化和恢復功能 ;“ Show History” 選項用來 實現(xiàn)顯 示播放 歷 史的功能; “ Quit” 選項 實現(xiàn) 退出程序功能。 24 4 系統(tǒng)測試 測試介紹 軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件品質,并對其是否能滿足設計要求進行評估的過程。 軟件測試 (Software Testing)是發(fā)現(xiàn)軟件中錯誤和缺陷的主要手段,是保證軟件質量的法寶之一。在一般情況下,軟件測試過程與 整個軟件開發(fā)過程基 本上是平行進行的。當然,測試計劃應該在需求分析階段就已經(jīng)開始制定了。 隨后的工作則會伴隨著軟件開發(fā)的過程逐步展開 [16]。 軟件測試的目的 對于軟件測試的目的, 提出過以下觀點: (1) 測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程 。 (2) 好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案 。 (3) 成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。 總體來說,軟件測試的目標是,以最小的工作量和成本盡可能多的發(fā)現(xiàn)軟件系統(tǒng)中的潛在的各種錯誤和缺陷,以保證軟件系統(tǒng)的正確性和可靠性 [17]。 測試的方法 軟件測試一般分為白箱測試和黑箱測試 [17]。 黑箱測試: 主要用于 測試應用程式的功能,而不是其內(nèi)部結構或運作。測試者不需具備應用程式的程式碼、內(nèi)部結構和編程語言的專門知識。測試案例是依應用系統(tǒng)應該做的功能,照規(guī)范、規(guī)
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1