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

正文內(nèi)容

基于linux的音樂播放器設(shè)計(jì)與實(shí)現(xiàn)論文(編輯修改稿)

2024-10-02 15:25 本頁面
 

【文章內(nèi)容簡介】 API 允許 KDE4 獨(dú)立于任何一個(gè)聲音系統(tǒng)服務(wù)器, Phonon 從一開始就被設(shè)計(jì)成 Qt 函數(shù)的風(fēng)格, Phonon 并非只能運(yùn)行于 Unix 系統(tǒng),他的后端可以是在其它平臺(tái)如 Microsoft Windows 并提供相同的功能。正是由于 Phonon 能夠?qū)崿F(xiàn)跨平臺(tái)使用,使得 和之后版本使用了 Phonon,作為跨平臺(tái)的音頻 和 視頻 播放。 Phonon 讓各種后端提供界面給開發(fā)者所謂的 “ 引擎 ” , 每個(gè)引擎運(yùn)作在一個(gè)具體的后端。每個(gè)后端都可讓 Phonon 控制基本功能,如播放、暫停和搜尋 。 Phonon 也支持更高層次的功能,如讓音軌轉(zhuǎn)化之間變微弱。使用 Solid, Phonon 將給予用戶更多配件的控制能力如耳機(jī)、揚(yáng)聲器、麥克風(fēng)。 5 2 系統(tǒng)分析 播放器舉例 Windows 下的音樂播放器 : Windows Media Player 是一款 Windows 系統(tǒng)自帶的播放器,支持通過插件增強(qiáng)功能,在 V7 及以后的版本,支持換膚。 1992 年微軟在 Windows 當(dāng)中捆綁了 ,使 成為第一代支持多媒體的 Windows 系統(tǒng)。后來,在 Windows 98 當(dāng)中內(nèi)置了 WMP64,這個(gè)版本存在于后續(xù)的操作系統(tǒng)中,并被一直保留至今。 另外, Windows 有千千靜聽、 音樂、酷狗音樂等優(yōu)秀播放器,功能十分完善,界面十分華麗,設(shè)計(jì)人性化,操作靈活、簡單,種類十分豐富。 Linux 下的音樂播放器 : (1) Audacious 與其它播放器的不同之處在于,它除了支持 UTF8 字符集之外,還提供其它字符集的支持,這樣能比較好的解決中文亂碼的問題。 更重要的一點(diǎn)是,它能很好的播放 APE 格式的音樂 。 (2) Juk 是一個(gè)很易用的播放器,而且界面方面做得比較美觀。但似乎它不能直接讀取 windows 分區(qū)里的音樂文件,如果音樂都在 NTFS 分區(qū)里,會(huì)給用戶帶來不少不便。 (3) Bmpx 相對前面兩者的特色在于最小化到托盤后的播放提示。 (4) Rhythmbox 是一款集成化的音樂管理工具,創(chuàng)建靈感來源于 iTunes 播放器,以GNOME 桌面系統(tǒng)和 GStreamer 媒體框架為基礎(chǔ)。不僅可以播放多種格式的音樂文件,還可以連接到互聯(lián)網(wǎng)中接受網(wǎng)絡(luò)收音機(jī)或者到網(wǎng)上音樂商店購買音樂 [4]。 雖 然 Linux上的音樂播放軟件并不缺 乏,但是很多的軟件技術(shù)層面并不是非常超前,只是簡簡單單,一切都 由 插件搞定,只是靠它整合的完整性讓人簡簡單單完成音樂播放的任務(wù)。在缺乏商業(yè)化因素的支持下, Linux 音樂播放器的用戶體驗(yàn)并不高。由于 Linux在圖形界面、用戶操作方面的劣勢,現(xiàn)在的 Linux 應(yīng)用程序在在向 windows 學(xué)習(xí),應(yīng)用程序界面更加豐富,更加美觀,更加人性化,種類也更加豐富。開發(fā)者也在想更加團(tuán)隊(duì)、專業(yè)發(fā)展。 功能 需求分析 音樂播放器作為一款必不可少的應(yīng)用程序,廣泛應(yīng)用于 電腦、智能手機(jī)、嵌入式設(shè)備 , 有著龐大的客戶人群。本文設(shè)計(jì)并實(shí)現(xiàn)一款簡單的播放器,能夠?qū)崿F(xiàn)音樂播放器的6 一般基本功能?,F(xiàn)將本播放器能夠?qū)崿F(xiàn)的功能做一些分析。 基本功能 實(shí)現(xiàn) 音頻的播放,這是開發(fā)一款音樂播放器的最基本要求,能夠?qū)崿F(xiàn)音頻播放、暫停、停止、進(jìn)度拖動(dòng)、音量控制、上一首、下一首等基本功能。同時(shí),在用戶使用播放器的過程中,能夠打開本地音頻文件,將文件動(dòng)態(tài)的添加到播放器當(dāng)前播放列表,實(shí)現(xiàn)文件的打開操作 [8]。 為了方便用戶的使用,本文能夠?qū)⒂脩舻牟シ帕斜泶鎯?chǔ)在本地文件中,當(dāng)系統(tǒng)下次啟動(dòng)的時(shí)候,能夠獲取用戶的歷史播放列表,并且 將其添加進(jìn)播放器的播放列表中。同時(shí),如果用戶想刪除某首歌曲,可以將其從當(dāng)前播放列表中刪除。為了能夠使用戶清楚自己的播放歷史, 播放器 實(shí)現(xiàn)了播放歷史記錄功能,將用戶的播放歷史記錄在本地文件中,可以方便用戶的查看。 播放器 還有一些其他的功能,如:雙擊播放器列表實(shí)現(xiàn)文件的播放,系統(tǒng)關(guān)閉提示,最小化到系統(tǒng)托盤,鼠標(biāo)拖動(dòng)窗口等。 播放器基本設(shè)置 為了讓用戶對播放器有更好的體驗(yàn),本文實(shí)現(xiàn)了對播放器的設(shè)置功能,能夠?qū)Σシ牌鬟M(jìn)行一些基本設(shè)置,將設(shè)置結(jié)果保存在播放器的配置文件中,每次播放器啟動(dòng)的時(shí)候,首先讀取配置文 件,根據(jù)其中的內(nèi)容,配置播放器的相關(guān)項(xiàng)。 能夠?qū)崿F(xiàn)的基本配置有:背景圖標(biāo)的切換、語言切換、默認(rèn)打開文件路徑、是否最小化、播放器關(guān)閉提示。 快捷鍵設(shè)置 為了方便用戶的操作,現(xiàn)在絕大部分的應(yīng)用軟件都設(shè)置有快捷鍵操作,能夠?qū)崿F(xiàn)對軟件的快捷操作。本文也根據(jù)需要設(shè)置了相關(guān)的快捷鍵,實(shí)現(xiàn)對播放器的控制。 上下文菜單設(shè)置 在播放器的設(shè)計(jì)過程中, 參照主流音樂播放器的一些特點(diǎn), 為 本 播放器的托盤圖標(biāo),播放列表,和播放器的 主 窗體設(shè)置有相關(guān)的上下文菜單。當(dāng)用戶點(diǎn)擊鼠標(biāo)右鍵,能夠彈出相應(yīng)的菜單選項(xiàng),提供不同的 操作。比如,當(dāng)用戶右鍵播放器托盤圖標(biāo)的時(shí)候,彈出的菜單有:最小化、復(fù)原、設(shè)置等,當(dāng)用戶右擊播放列表,彈出菜單有:刪除此歌曲、刪除全部歌曲、打開文件等功能。 可行性分析 對于基于 Linux 的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)的可行性, 本文 將從 經(jīng)濟(jì)、技術(shù)和應(yīng)用7 三 方面進(jìn)行分析。 經(jīng)濟(jì)可行性 Debian 是一種自由和開放源碼的類 Unix 操作系統(tǒng) ,系統(tǒng)軟件本身的安裝和使用都不需要任何費(fèi)用。 Qt 分為兩種版本: (1) Qt 商業(yè)版 。 提供給商業(yè)軟件開發(fā)。它們提供傳 統(tǒng)商業(yè)軟件發(fā)行版并且提供在協(xié)議有效期內(nèi)的免費(fèi)升級和技術(shù)支持 服務(wù) 。 (2) Qt 開源版 。 僅僅為了開發(fā)自由和開放源碼軟件,提供了和商業(yè)版本同樣的功能。 GNU 通用公共許可證下,它是免費(fèi)的。 本系統(tǒng)采用 Qt 開源版, 不需要任何費(fèi)用。所以,基于 Linux 的音樂播放器在開發(fā)過程中,不需要任何的附加費(fèi)用,能夠?qū)崿F(xiàn) “ 零成本 ” 的可行性。 技術(shù)可行性 首先,基于 Linux 的音樂播放器,實(shí)現(xiàn)一般音樂播放器的基本功能(播放,暫停,快進(jìn)),沒有十分復(fù)雜的其他功能,如:網(wǎng)絡(luò)下載,歌詞下載等,這些都能夠運(yùn)用所學(xué)的知識(shí)實(shí)現(xiàn),這些功能都可以通過調(diào)用 Phonon 的 API 來實(shí)現(xiàn)。 Qt 對于 大多數(shù)人 來 說,還是一個(gè)新事物,但是 它 只是一個(gè)跨平臺(tái)應(yīng)用程序和 UI 開發(fā)框架,而且這個(gè)項(xiàng)目對于 Qt 的運(yùn)用不是很深入,只是對于某一些基本的理論知識(shí)的學(xué)習(xí)和運(yùn)用。同時(shí)在 Linux 下使用 Qt 的集成開發(fā)環(huán)境 Qt Creator 與在 windows 平臺(tái)下沒有太大差別。此項(xiàng)目使用過的編程語言是 C++,作為一項(xiàng)高級語言,與 C、 C、 Java都有很多相似性。 最后, Linux、 Qt 作為開源軟件,在網(wǎng)絡(luò)上有許多開源社區(qū),有很多開源愛好者,能夠查到許多 相關(guān)的 源代碼, 通過 充分運(yùn)用這些網(wǎng)絡(luò)資源, 對自己完成設(shè)計(jì)有很大幫助。 應(yīng)用分析 本文是在 Debian操作系統(tǒng)平臺(tái)上進(jìn)行的開發(fā), 使用 Qt實(shí)現(xiàn) C++圖形用戶界面開發(fā) ,Phonon 實(shí)現(xiàn) 多媒體編程 。由于 Qt 和 Phonon 都具有跨平臺(tái)的特性,使用 Qt 開發(fā)的軟件,相同的程序代碼可以在任何 支持 的平臺(tái)上編譯與執(zhí)行,而不需要修改源代碼。 只要操作系統(tǒng)安裝有 Qt 和 Phonon 的相關(guān)類庫,本播放器能夠在 Linux、 Windows、 Mac OS X 等操作系統(tǒng)上使用。 所以能夠支持播放器的操作系統(tǒng)十分廣泛。本播放器實(shí)現(xiàn)了大部分基本功能,能夠滿足 用戶 一般的播放需要。 資源獲取途徑方面,本 播放器 可以不受限制地獲取本地 計(jì)算機(jī)上的所有資源,同時(shí)8 資源獲取方便快捷。界面觀感方面,桌面應(yīng)用程序除了自身的菜單欄和工具欄之外,沒有多余的菜單欄和工具欄。 總結(jié) 本課題通過對 Linux 環(huán)境下的音樂播放器技術(shù)的相關(guān)研究,了解了 Linux 平臺(tái)下的體系結(jié)構(gòu),以及 QT 開發(fā)平臺(tái)使用,掌握了音樂播放器的實(shí)現(xiàn)原理以及過程,從而設(shè)計(jì)出一款用戶界面友好的音樂播放器 。 通過以上分析,播放器的功能不是非常復(fù)雜,完成這個(gè)音樂播放器的知識(shí)大都已經(jīng)具備,所以能夠較好的完成。 主要研究內(nèi)容包括以下幾個(gè)方面 : (1) 查找相關(guān)書籍與文獻(xiàn) , 了解 LINUX 的構(gòu)架并搭建 LINUX 平臺(tái) 。 (2) 查找相關(guān)資料 , 了解 QT Creator 的開發(fā)方式以及 QT 庫的使用,搭建 QT 平臺(tái) 。 (3) 查找現(xiàn)階段基于 LINUX 平臺(tái)手機(jī)音樂播放器發(fā)展現(xiàn)狀以及相關(guān)功能 。 在上述基礎(chǔ)上 ,做出音樂播放器的相關(guān)功能如下 : (1) 美觀、時(shí)尚的操作界面 。 (2) 滾動(dòng)顯示正在播放的歌曲及其長度信息 。 (3) 音頻的播放 、 暫停 、 停止 、 快進(jìn)等功能 。 (4) 顯示歌曲的播放進(jìn)度 。 (5) 通過播放列表來選擇播放曲目 。 (6) 音樂播放器的控制設(shè)置功能 。 (7) 音樂播放器的控制設(shè)置功能 等。 在 LINUX 平臺(tái)上完成該課題的軟件 ,然后 進(jìn)行相應(yīng)的軟件測試 。 9 3 系統(tǒng)設(shè)計(jì) Qt 信號與槽 機(jī)制 介紹 在以往的 GUI 用戶界面中,用戶操作一個(gè)窗口部件時(shí),需要其他窗口部件的響應(yīng)或者能夠激活其他操作。在程序開發(fā)中,經(jīng)常使用回調(diào)( callback)機(jī)制來實(shí)現(xiàn)。但是,QT 不同于回調(diào)機(jī)制,他使用信號與槽機(jī)制。 信號和槽機(jī)制是 QT 的核心機(jī)制,要精通 QT 編程就必須對信號和槽有所了解。信號和槽是一種高級接口,應(yīng)用于對象之間的通信,它是 QT 的核心特性,也是 QT 區(qū)別于其它工具包的重要地方。信號和槽是 QT 自行定義的一種通信機(jī)制,它獨(dú)立于標(biāo)準(zhǔn)的 C/C++ 語言,因此要正確的處理信號和 槽,必須借助一個(gè)稱為 moc( Meta Object Compiler)的 QT 工具,該工具是一個(gè) C++ 預(yù)處理程序,它為高層次的事件處理自動(dòng)生成所需要的附加代碼 [9]。 在人們 熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一個(gè)回調(diào)函數(shù)用于響應(yīng)它們能觸發(fā)的每個(gè)動(dòng)作,這個(gè)回調(diào)函數(shù)通常是一個(gè)指向某個(gè)函數(shù)的指針。但是,在 QT 中信號和槽取代了這些凌亂的函數(shù)指針,使得我們編寫這些通信程序更為簡潔明了。 信號和槽能攜帶任意數(shù)量和任意類型的參數(shù),他們是類型完全安全的,不會(huì)像回調(diào)函數(shù)那樣產(chǎn)生 core dumps。 所有從 QObject 或其子類 (例如 Qwidget) 派生的類都能夠包含信號和槽。當(dāng)對象改變其狀態(tài)時(shí),信號就由該對象發(fā)射 (emit) 出去,這就是對象所要做的全部事情,它不知道另一端是誰在接收這個(gè)信號。這就是真正的信息封裝,它確保對象被當(dāng)作一個(gè)真正的軟件組件來使用。槽用于接收信號,但它們是普通的對象成員函數(shù)。一個(gè)槽并不知道是否有任何信號與自己相連接。而且,對象并不了解具體的通信機(jī)制。 可以將很多信號與單個(gè)的槽進(jìn)行連接,也可以將單個(gè)的信號與很多的槽進(jìn)行連接,甚至于將一個(gè)信號與另外一個(gè) 信號相連接也是可能的,這時(shí)無論第一個(gè)信號什么時(shí)候發(fā)射系統(tǒng)都將立刻發(fā)射第二個(gè)信號??傊?,信號與槽構(gòu)造了一個(gè)強(qiáng)大的部件編程機(jī)制。 信號 當(dāng)某個(gè)信號對其客戶或所有者發(fā)生的內(nèi)部狀態(tài)發(fā)生改變,信號被一個(gè)對象發(fā)射。只有定義過這個(gè)信號的類及其派生類能夠發(fā)射這個(gè)信號。當(dāng)一個(gè)信號被發(fā)射時(shí),與其相關(guān)聯(lián)的槽將被立刻執(zhí)行,就象一個(gè)正常的函數(shù)調(diào)用一樣。信號 與 槽機(jī)制完全獨(dú)立于10 任何 GUI 事件循環(huán)。只有當(dāng)所有的槽返回以后發(fā)射函數(shù) emit()才返回。如果存在多個(gè)槽與某個(gè)信號相關(guān)聯(lián),那么,當(dāng)這個(gè)信號被發(fā)射時(shí),這些槽將會(huì)一個(gè)接一 個(gè)地 執(zhí)行,但是它們執(zhí)行的順序?qū)?huì)是隨機(jī)的、不確定的,我們不能人為地指定哪個(gè)先執(zhí)行 , 哪個(gè)后執(zhí)行。 信號的聲明是在頭文件中進(jìn)行的, QT 的 signals 關(guān)鍵字指出進(jìn)入了信號聲明區(qū),隨后即可 聲明自己的信號。例如,下面定義了 兩 個(gè)信號: signals: void mySignal()。 void mySignal(int x)。 在上面的定義中, signals 是 QT 的關(guān)鍵字,而非 C/C++ 的。接下來的一行 void mySignal() 定義了信號 mySignal, 這個(gè)信號沒有攜帶參數(shù);接 下來的一行 void mySignal(int x) 定義了重名信號 mySignal,但是它攜帶一個(gè)整形參數(shù),這有點(diǎn)類似于 C++ 中的虛函數(shù)。從形式上講信號的聲明與普通的 C++函數(shù)是一樣的,但是信號卻沒有函數(shù)體定義 。 另外,信號的返回類型都是 void,不要指望能從信號返回什么有用信息。信號由 moc 自動(dòng)產(chǎn)生,它們不應(yīng)該在 .cpp 文件中實(shí)現(xiàn) [6]。 槽 槽是普通的 C++ 成員函數(shù),可以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關(guān)聯(lián)。當(dāng)與其關(guān)聯(lián)的信號被發(fā)射時(shí),這個(gè)槽就會(huì)被調(diào)用。槽可以有參數(shù),但槽的參數(shù)不能有缺省值。 既然槽是普通的成員函數(shù),因此與其它的函數(shù)一樣,它們也有存取權(quán)限。槽的存取權(quán)限決定了誰能夠與其相關(guān)聯(lián)。同普通的 C++ 成員函數(shù)一樣,槽函數(shù)也分為三種類型,即 public slots、 private slots 和 protected slots。 (1) public slots 類型。 在這個(gè)區(qū)內(nèi)聲明的槽意味著任何對象都可將信號與之相連接。這對于組件編程非常有用,你可以創(chuàng)建彼此互不了解的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1