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

正文內(nèi)容

基于linux的音樂播放器設(shè)計與實現(xiàn)論文(完整版)

2024-10-14 15:25上一頁面

下一頁面
  

【正文】 面 21 QSettings 介紹 Qsettings 是 提供的一個讀取配置文件的類,提供獨立于平臺的程序設(shè)置,在windows 平臺,它提供了 ini 文件讀些,注冊表讀寫的功能,而且使用也非常簡單。 thissetWindowState(Qt::WindowActive)。 } (8) 雙擊播放 在播放列表中顯示著當(dāng)前的播放播放列表,如果用戶想播放其中的某一首歌曲,可以通過雙擊該項實現(xiàn)歌曲的播放。 mediaObjectsetCurrentSource((index))。 代碼實現(xiàn): int index = sourceList。 QTime curTime(0,(time / 60000) % 60,(time / 1000) % 60)。 播放控制 系統(tǒng)實現(xiàn)的功能如圖 35 所示 [12]: 17 圖 35 播放器的 基本 功能 圖 35 是播放器的基本功能截圖, 包括:暫停、播放等功能。 audioOutput =new Phonon::AudioOutput(Phonon::MusicCategory,this)。 QlistT是 Qt 的一種泛型容器類。所以它會連接到 MediaObject,并控制串流目前的位置。 在 Phonon 術(shù)語中,我們要創(chuàng)建的 AudioOutput 對象叫做音頻接收槽。 Phonon 函數(shù)成員 如圖 34 所示 [7]: 圖 34 主要的 Phonon 類 播放器 主要使用的 Phonon 類及使用 方法介紹如下 [11]: (1) Phonon::MediaObject Class MediaObject 主要提供一個能夠處理媒體播放的 類 。多媒體由 MediaObject 控制播放 , 而由 Sink 來處理這些多媒體 。原因有:需要定位接受信號的對象;安全的遍歷所有的關(guān)聯(lián)(如 :一個信號關(guān)聯(lián)到多個槽);多線程,信號可能排隊等待。激發(fā)信號的 Qt 對象無需知道是哪個對象的 哪個槽需要接收它發(fā)出的信號,它需要做的是在適當(dāng)?shù)臅r間發(fā)送適當(dāng)?shù)男盘柧涂梢粤?,而不需要知道也不必關(guān)心它的信號有沒有被接收到,更不需要 知道 是哪個對象的哪個槽接收到了信號,也就是說一個信號可以呼叫所有可用的槽。 信號在任何執(zhí)行點上皆可發(fā)射,甚至可以在槽里再發(fā)射另一個信號,信號與槽的連結(jié)不限定為一對一的連結(jié), 一個信號可以連結(jié)到多個槽或多個信號連結(jié)到同一個槽,甚至信號也可連接到信號。 Qt 利用信號與槽( signals/slots)機制取代傳統(tǒng)的 callback 來進(jìn)行物件之間的溝通。 11 槽也能夠聲明為虛函數(shù),這也是非常有用的。 在這個區(qū)內(nèi)聲明的槽意味著任何對象都可將信號與之相連接。信號由 moc 自動產(chǎn)生,它們不應(yīng)該在 .cpp 文件中實現(xiàn) [6]。如果存在多個槽與某個信號相關(guān)聯(lián),那么,當(dāng)這個信號被發(fā)射時,這些槽將會一個接一 個地 執(zhí)行,但是它們執(zhí)行的順序?qū)请S機的、不確定的,我們不能人為地指定哪個先執(zhí)行 , 哪個后執(zhí)行。而且,對象并不了解具體的通信機制。 在人們 熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一個回調(diào)函數(shù)用于響應(yīng)它們能觸發(fā)的每個動作,這個回調(diào)函數(shù)通常是一個指向某個函數(shù)的指針。 (7) 音樂播放器的控制設(shè)置功能 等。 (2) 查找相關(guān)資料 , 了解 QT Creator 的開發(fā)方式以及 QT 庫的使用,搭建 QT 平臺 。 只要操作系統(tǒng)安裝有 Qt 和 Phonon 的相關(guān)類庫,本播放器能夠在 Linux、 Windows、 Mac OS X 等操作系統(tǒng)上使用。所以,基于 Linux 的音樂播放器在開發(fā)過程中,不需要任何的附加費用,能夠?qū)崿F(xiàn) “ 零成本 ” 的可行性。 經(jīng)濟(jì)可行性 Debian 是一種自由和開放源碼的類 Unix 操作系統(tǒng) ,系統(tǒng)軟件本身的安裝和使用都不需要任何費用。 播放器基本設(shè)置 為了讓用戶對播放器有更好的體驗,本文實現(xiàn)了對播放器的設(shè)置功能,能夠?qū)Σシ牌鬟M(jìn)行一些基本設(shè)置,將設(shè)置結(jié)果保存在播放器的配置文件中,每次播放器啟動的時候,首先讀取配置文 件,根據(jù)其中的內(nèi)容,配置播放器的相關(guān)項。本文設(shè)計并實現(xiàn)一款簡單的播放器,能夠?qū)崿F(xiàn)音樂播放器的6 一般基本功能。 (3) Bmpx 相對前面兩者的特色在于最小化到托盤后的播放提示。 5 2 系統(tǒng)分析 播放器舉例 Windows 下的音樂播放器 : Windows Media Player 是一款 Windows 系統(tǒng)自帶的播放器,支持通過插件增強功能,在 V7 及以后的版本,支持換膚。 Phonon 簡介 Phonon 是 KDE( Kool Desktop Environment)的多媒體 API, 為使用音頻和視頻的應(yīng)用程 序開發(fā)提供的一個框架 [7]。 在功能方面, Qt Creator 包括項目生成向?qū)?、高級? C++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、 Qt Assistant、 Qt Linguist、圖形化的 GDB 調(diào)試前端,集成 qmake 構(gòu)建工具等 。 與移動設(shè)備 ,如: Symbian、 Maemo 和 MeeGo 上建構(gòu)和運行 Qt應(yīng)用程序 。 Qt 主要的優(yōu)勢如下: (1) 面向?qū)ο?。它是諾基亞( Nokia)的 Qt Development Frameworks 部門的產(chǎn)品。 3 (3) 多任務(wù)。國內(nèi)如中標(biāo)軟件、紅旗等系統(tǒng)軟件廠商 推出的 Linux桌面操作系統(tǒng),目前已經(jīng)在政府、企業(yè)、 OEM 等領(lǐng)域得到了廣泛應(yīng)用。 Linux 操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中最著名的例子。計算機行業(yè) 是 一個飛速發(fā)展的行業(yè), 我們 必須 跟上 它 的步伐,才 不 會 被社會淘汰。因此設(shè)計 一款優(yōu)良的音樂播放器軟件 成了許多公司 和 個人的目標(biāo)。Minimize to tray39。Next track39。s life. This Music player is developed under Linux (Debian ) operating system with the Qt application development framework implementing the player39。 基于 Linux 的音樂播放器設(shè)計與實現(xiàn) 專 業(yè): 計算機科學(xué)與技術(shù) 學(xué) 號: 學(xué) 生: 指導(dǎo)教師: 摘要: 作為一項與人們生活息息 相關(guān)的應(yīng)用,音樂播放器在人們的生活中發(fā)揮著不可替代的作用。s GUI design. Phonon multimedia APIs is used for multimedia control and at last coded by C++ programming language. The music player has realized basic functions of ordinary music player, including 39。 function, 39。 function and so on. The testing results show that the player can run smoothly and realize all of functions mentioned before. The player is provided with fault tolerance as well. To sum up, the player achieves the design39。 網(wǎng)絡(luò)上 已經(jīng) 存在著成 各式各樣的 音樂播放器。 本文的目的是通過對流行音樂播放器的研究, 設(shè)計并實現(xiàn)一款音樂播放器 。只要遵循 GNU通用公共許可證 ,任何人和機構(gòu)都可以自由地使用 Linux 的所有底層源代碼,也可以自由地修改和再發(fā)布。國外的 Novell(SuSe)、 Sun 公司也相繼推出了基于Linux 的桌面系統(tǒng)。能夠同時執(zhí)行多個程序,而且各個程序相互獨立運行。 Qt 使用標(biāo)準(zhǔn)的C++。 Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。允許開發(fā)者為多桌面環(huán)境及移動設(shè)備平臺創(chuàng)建應(yīng)用程序。 Qt Creator 主要是為了幫助新 Qt 用戶更快速入門并運行項目,還可提高有經(jīng)驗的 Qt 開發(fā)人員的工作效率。 應(yīng)用程序不用去管多媒體播放是通過什么實現(xiàn)的(如GStreamer),只需調(diào)用相應(yīng)的接口就行,但這中間需要一個中轉(zhuǎn),被稱為 backend。 1992 年微軟在 Windows 當(dāng)中捆綁了 ,使 成為第一代支持多媒體的 Windows 系統(tǒng)。 (4) Rhythmbox 是一款集成化的音樂管理工具,創(chuàng)建靈感來源于 iTunes 播放器,以GNOME 桌面系統(tǒng)和 GStreamer 媒體框架為基礎(chǔ)?,F(xiàn)將本播放器能夠?qū)崿F(xiàn)的功能做一些分析。 能夠?qū)崿F(xiàn)的基本配置有:背景圖標(biāo)的切換、語言切換、默認(rèn)打開文件路徑、是否最小化、播放器關(guān)閉提示。 Qt 分為兩種版本: (1) Qt 商業(yè)版 。 技術(shù)可行性 首先,基于 Linux 的音樂播放器,實現(xiàn)一般音樂播放器的基本功能(播放,暫停,快進(jìn)),沒有十分復(fù)雜的其他功能,如:網(wǎng)絡(luò)下載,歌詞下載等,這些都能夠運用所學(xué)的知識實現(xiàn),這些功能都可以通過調(diào)用 Phonon 的 API 來實現(xiàn)。 所以能夠支持播放器的操作系統(tǒng)十分廣泛。 (3) 查找現(xiàn)階段基于 LINUX 平臺手機音樂播放器發(fā)展現(xiàn)狀以及相關(guān)功能 。 在 LINUX 平臺上完成該課題的軟件 ,然后 進(jìn)行相應(yīng)的軟件測試 。但是,在 QT 中信號和槽取代了這些凌亂的函數(shù)指針,使得我們編寫這些通信程序更為簡潔明了。 可以將很多信號與單個的槽進(jìn)行連接,也可以將單個的信號與很多的槽進(jìn)行連接,甚至于將一個信號與另外一個 信號相連接也是可能的,這時無論第一個信號什么時候發(fā)射系統(tǒng)都將立刻發(fā)射第二個信號。 信號的聲明是在頭文件中進(jìn)行的, QT 的 signals 關(guān)鍵字指出進(jìn)入了信號聲明區(qū),隨后即可 聲明自己的信號。 槽 槽是普通的 C++ 成員函數(shù),可以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關(guān)聯(lián)。這對于組件編程非常有用,你可以創(chuàng)建彼此互不了解的對象,將它們的信號與槽進(jìn)行連接以便信息能夠正確的傳遞。 槽的聲明也是在頭文件中進(jìn)行的。當(dāng)操作事件發(fā)生的時候,物件會發(fā)送出一個信號( signal);而槽( slot)則是一個函式接受特定信號并且執(zhí)行槽本身設(shè) 定的動作。 Qt 信號和槽機制的優(yōu)點 信號和槽機制有以下優(yōu)點 [10]: (1) 類型安全的。同樣的,對象的槽也不知道是哪些信號關(guān)聯(lián)到了自己。但是,與創(chuàng)建堆對象時的 new 操作實例化對象,以及刪除堆對象的 delete 操作相比較,信號與槽的代價只是他的很少的一部分。 Path 是用來連接 Phonon 對象的,比如,一個媒體對象和一個接收端,從而構(gòu)成了 Phonon 中的MediaGraph,如 圖 32 所示 : 圖 32 媒體文件播放過程 圖 32 是媒體文件的播放過程, 這些在不同的系統(tǒng)中實現(xiàn)方式不同,如:在 Linux環(huán)境下,通常使用 GStreamer 庫,在 Max OS X 環(huán)境下,使用 QuickTime,在 windows下,使用 Direct X 和 SirectShow 庫。 MediaObject 可說是處理多媒體 文件 最基本的一部份,它接受并管理來自 于MediaSource 的媒體 文件 。它是直接與音頻驅(qū)動器通信的層的組成部分,并充當(dāng) MediaObject 的虛擬音頻設(shè)備。 用法: Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider(this)。它以鏈表方式存儲一組值,并能對這組數(shù)據(jù)進(jìn)16 行快速索引,還提供了快速插入和刪除等操作。 seekSlider = new Phonon::SeekSlider(uiprogresswidget)。 (1) 播放 當(dāng)點擊播放按鍵時, 播放器 播放用戶選中的歌曲,同時顯示 播放 歌曲的長度和當(dāng)前播放進(jìn)度信息 [13]。 thisuitotalTimeLablesetText(tr(%1 ) .arg((mm:ss)))。 indexOf(mediaObjectcurrentSource()) + 1。 mediaObjectplay()。將播放列表雙擊信號與自定義槽 doubleClicked(int row, int )關(guān)聯(lián) 。 } else thishide()。Qsettings 的 API 是基于 Qvariant, Qvariant 是一種數(shù)據(jù)類型的集合,它包含了大部分通常的 Qt 數(shù)據(jù)類型,比如 QString, QRec, QImage,等等。 當(dāng)用戶點擊 open 按鈕,選擇默認(rèn)打開文件目錄時,首先獲取默認(rèn)打開目錄,將打開文件對話框設(shè)置為此目錄,然后彈出打開文件對話框,獲取用戶選擇的文件目錄,并且將新目錄輸入文本框中,然后修改配置文件 defaultOpenDir 項的值。 正常顯示的結(jié)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1