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

正文內(nèi)容

基于qt的音頻管理系統(tǒng)的設計與實現(xiàn)本科論文(參考版)

2024-09-11 12:25本頁面
  

【正文】 在模型 /視圖架構中,模型提供了一個標準的接口供視圖和委托來訪問數(shù)據(jù),在 Qt中這個標準的接口使用 QAbstractItemModel 類來定義。所有的模型都基于 QAbstractItemModel 類,這個類定義了一個接口來處理各種視圖。 Qt中的模型 /視圖就是用來實現(xiàn)大量數(shù)據(jù)的存儲、處理及顯示的。 要 實 現(xiàn) 這 些 功 能 需 要 重 寫QAbstractItemModel,添加一些槽函數(shù)。雙擊選中歌曲,可以播放音樂。選擇那三個速度選項,可以改變播放速度。拖動音量滑動條,滑動條越高,音量越大。點擊靜音圖標,聲音可以播放。 靜音。 下一首。 上一首。 停止功能。雙擊播放列表,可以播放音頻文件。 播放控制 播放控制。要實現(xiàn)這個功能需要使用 QTreeview,以樹形顯示專輯和相應的歌曲。 系統(tǒng)管理音頻文件,可以根據(jù)打開的文件自動按照專輯分類加入該演唱者對應的歌曲名。歌手為根節(jié)點,歌曲為葉節(jié)點。一個演唱者有多首歌曲,也就是說建立演唱者的時候,把它的相應的歌曲添加在該節(jié)點之下。 功能模塊層次圖 所示。易懂。播放控制,播放列表都寫成獨立的模塊。 系統(tǒng)中的另外一個功能就是播放。同理,以專輯名稱作為分類顯示歌曲 名也需要同樣的方法。 系統(tǒng)的一個功能亮點是管理。 系統(tǒng)功能模塊劃分 根據(jù)系統(tǒng)的功能,列出系統(tǒng)中的幾個模塊。打開文件對話框,可取的音頻文件名,系統(tǒng)的所有操作都是基于這個結果之上。 運行結果如圖 所示。 運行結果如 所示。開始,停止,上一首,下一首,音量控制,靜音功能,播放速度。 運行結果如 所示。播放列表中的歌 曲 按 照 添 加 進 系 統(tǒng) 的 先 后 順 序 順 序 播 放 。 圖 主頁面運行結果 圖 演唱者分類 圖 以專輯分類 北京郵電大學畢業(yè)設計 17 播放列表 實現(xiàn)播放功能,需要一個播放列表。專輯為根節(jié)點,歌曲為葉節(jié)點。 以專輯名稱分類,顯示該專輯所對應的歌曲名 系統(tǒng)管理音頻文件,可以根據(jù)打開的文件自動按照專輯分類加入該演唱者對應的歌曲名。歌手為根節(jié)點,歌曲為葉節(jié)點。 圖 系統(tǒng)層次圖 北京郵電大學畢業(yè)設計 16 以演唱者分類,顯示演唱者所對應的歌曲 名 系統(tǒng)管理音頻文件,可以根據(jù)打開的文件自動按照演唱者分類加入該演唱者對應的歌曲名。最右邊放置的是播放列表。左邊放置的是以藝術家分類管理的音頻文件。 下面這一層放置的是當前系統(tǒng)中的音頻文件。 播放進度條上面有各種和播放相關的按鈕。 中間這一層放置的是打開文件的按鈕。 最上面是播放進度條。主頁面中對各類信息按類型顯示。 北京郵電大學畢業(yè)設計 15 系統(tǒng)層次圖 系統(tǒng)界面模塊介紹 主頁面 系統(tǒng)只有一個頁面。此外還有打開按鈕,播放控制以及播放進度條。這三個小的模塊都用于顯示讀取到的音頻文件名稱。這樣用戶可以清晰的看出本地系統(tǒng)中的音頻文件。每個藝術家都作為一個節(jié)點,藝術家的歌曲作為其子節(jié)點。系統(tǒng)界面模塊和系統(tǒng)功能模塊。拖動播放進度條,實現(xiàn)快進。拖動音量滑動條,實現(xiàn)音量控制。點擊音量圖標,實現(xiàn)靜音功能。點擊下一首按鈕,可以播放下一首歌曲。點擊上一首按鈕,可以播放上一首歌曲。點擊停止播放按鈕,可以停止播放。選中播放列表中顯示的歌曲名,單機播放按鈕,也可以播放音頻文件。 播放 /暫停功能。 主要功能 本系統(tǒng)的功能劃分如下: 以演唱者分類管理音樂文件:系統(tǒng)可以根據(jù)打開的 文件自動按照演唱者分類加入該演唱者對應的歌曲名。本系統(tǒng)是運用可視化編程工具 Qt 開發(fā)的,界面美觀大方,系統(tǒng)運行穩(wěn)定。 北京郵電大學畢業(yè)設計 14 4 系統(tǒng)設計 系統(tǒng)介紹 用 Qt 設計實現(xiàn)音頻管理系統(tǒng)在我所接觸到的資料中并不多見。 系統(tǒng)中的另外一個功能就是播放。同理,以專輯名稱作為分類顯示歌曲名也需要同樣的方法。 系統(tǒng)中的一個功能亮點是管理。根據(jù)系統(tǒng)的功能,列出系統(tǒng)中特定領域類。系統(tǒng)用例圖如圖 所示。 系統(tǒng)用例圖 在本系統(tǒng)中,通過分析,可以確定只有一種角色,就是用戶。點擊聲音的圖標,點擊按鈕,實現(xiàn)靜音。拉動進度條可以實現(xiàn)快進功能。 播放進度條。 停止。 上一首 /下一首。 播放 /暫停 功能。 以專輯名稱分類,以專輯名稱作為樹根節(jié)點,分列加入這個專輯的歌曲。 音頻管理系統(tǒng)的基本需求如下: 它是一個音頻管理單機系統(tǒng),打開一個文件加入到播放列表的同時將這些音樂文件分類。一個信號可以連接多個槽;多個信號可以連接同一個槽;一個信號可以與另外一個信號相連接; 連接可以被移除;信號成功連接到槽(或者連接到另外一個信號),它們的參數(shù)必須具有相同的順序和相同的類型,如果信號的參數(shù)比它所連接的槽的參數(shù)多,那么多余的參數(shù) 將會被簡單的忽略掉。 信號與槽的 關聯(lián) 槽和普通的 C++成員函數(shù)幾乎是一樣的,可以是虛函數(shù);可以被重載;可以是公有的、保護的或是私有的,并且也可以被其它 C++成員函數(shù)直接調(diào)用;還有,它們的參數(shù)可以是任意類型。此外,槽也能夠聲明為虛函數(shù)。這就是說這些槽和這個類是非常緊密的,甚至它的子類都沒有獲得連接權利這樣的信任。這些槽只是類的實現(xiàn)的一部分,而不是它和外界的接口。這對于組件編程來說非常有用:你生成了許多對象,它們互相并不知道,把它們的信號和槽連接起來,這樣信息就可以正確地傳遞,并且就像一個小孩子喜歡玩耍的鐵路軌道上的火車模型,把它打開然后讓它跑起來。通常,槽也分為三種類型,即 public slots、 private slots 和 protected slots。 槽也和普通成員函數(shù)一樣有訪問權限。當與其關聯(lián)的信號被發(fā)射時,這個槽就 會被調(diào)用。 Qt 用 signals 關鍵字標識信號聲明區(qū),隨后可聲明自己的信號。如果存在多個槽與某個信號相關聯(lián),那么,當這個信號被發(fā)射時,這些槽將會一個接一個地被執(zhí)行,但是它們執(zhí)行的順序?qū)遣淮_定的,并且不能指定它們執(zhí)行的順序。信號 槽機制獨立于任何 GUI 事件循環(huán)。只有定義過這個信號的類或者其派生類能夠發(fā)射這個信號。在 Qt 中用信號和槽取代了上述機制。信號和槽是一種高級接口,它們被應用于對象之間的通信,它們是 Qt 的核心特性,也是 Qt 不同于其它同類工具包的重要地方之一。如果該 object 同時安裝了多個 eventfilter,那么這些 filter 會按照“后進先出”的規(guī)則依次被激活,及順序是從最后安裝的開始,到第一個被安裝的為止。 在選定對象上安裝事件過濾器 該對象繼承自 QObject,這樣就可以處理處理 Tab 和 ShiftTab 以外的所有事件。 重載 QObject::event()函數(shù) 通過重新實現(xiàn)的 event()函數(shù),在事件到達特定部件的事件過濾器前處理 Tab 事件。 在 QCoreApplication:: instance() 上安裝時間過濾器 這樣就可以處理所有部件上的所有事件,這 和重載 QcoreApplication::notify()函數(shù)的效果是類似的。也就是說,當你需要在事件處理器 (event handler)之前得到所有事件的話,就可以采用這個方法,但是這樣一來,因為只有一個notify()函數(shù),所以每次只能有一個子類被激活。 重載 paintEvent()、 mousePressEvent()等時間處理器 (event handler)重新實現(xiàn)像mousePressEvent(),keyPressEvent()和 paintEvent()這樣的 event hangder 是目前處理 event所采用的最常見的方法。開發(fā)人員甚至還可以重新實現(xiàn)事件調(diào)度程序 QApplication::notify(),對整個事件交付過程進行全面控制。 另外,如果在應用程序的 QApplication 唯一實例中安裝一個過濾器,則也可以過濾應用程序 的全部事件。這可以通過調(diào)用被監(jiān)控對象的 QObject::installEventFilter() 函數(shù)來實現(xiàn)。例如, Qt 會將多個 paint 事件壓縮成一個事件,以便達到最大速度。 有些事件會立即發(fā)送,而另一些事件則需要排隊等候,當控 制權返回至 Qt 事件循環(huán)時才會開始分發(fā)。處于方便起見, Qobject:: event()會將大多數(shù)的事件類型轉(zhuǎn)發(fā)給專門的處理函數(shù): 例如: QWidget::mouseReleaseEvent()和 QWidget::keyPressEvent()。開發(fā)人員甚至還可以重新實現(xiàn)事件調(diào)度程序 QApplication::notify(),對整個事件交付過程進行全面控制。 另外,如果在應用程序的 QApplication 唯一實例中安裝一個過濾器,則也可以過濾應用程序的全部事件。這可以通過調(diào)用被監(jiān)控對象的 QObject::installEventFilter() 函數(shù)來實現(xiàn)。例如, Qt 會將多個 paint 事件壓縮成一 個事件,以便達到最大速度。 有些事件會立即發(fā)送,而另一些事件則需要排隊等候,當控制權返回至 Qt 事件循環(huán)時才會開始分發(fā)。 出于方便起見, QObject::event()會將大多數(shù)常見的事件類型轉(zhuǎn)發(fā)給專門的處理函數(shù),例如: QWidget::mouseReleaseEvent()和 QWidget::keyPressEvent()。每一 QEvent 子類均提供事件類型的相關附加信息,因此每個事件處理器均可利用此信息采取相應處理。 通常,接收方如果只知道按鍵了或者松開鼠標按鈕了,這是不夠的。在 Qt 中大約有 50 多種事件類型,最常見的事件類型是報告鼠標活動、按鍵、重繪請求以及窗口處理操作。 事件的創(chuàng)建 大多數(shù)事件是由窗口系統(tǒng)生成的,它們負責向應用程序通知相關的 用戶操作,例如:按鍵、鼠標單擊或者重新調(diào)整窗口大小。當一個事件產(chǎn)生時,Qt 就會構造一個 QEvent 子類的實例來表述該事件,然后將該事件發(fā)送到相應的對象上進行處理。 Qt 將事件發(fā)送給每個 QObject 對象,這樣對象便可對事件做出響應。應用程序可以按 照不同的粒度對事件加以監(jiān)控、過濾并做出響應。 Qt 的事件模型 Qt 中的事件模型十分重要。其最大值為 65307bytes,小于 64KB; Segment_table:從字面看它就是一個表,表示著每個 segment 的長度,取值范圍是 0~255。 Page_seguence:本頁在邏輯流的序號, 4 個字節(jié)。若此值為 1,那表示截止到 本頁,邏輯流的 packet 未結束; Serial_number:當前頁中的流的 id, 4 個字節(jié),它是區(qū)分本頁所屬邏輯流與其他邏輯流的序號,我們可以通過這個值來劃分流。其作用是分離 Ogg封裝格式還原媒體編碼時識別新頁的作用; 版本 id:一般當前版本默認為 0, 1 個字節(jié);Header_type:標識當前的頁的類型, 1 個字節(jié); Granule_position:媒體編碼相關的參數(shù)信息, 8 個字節(jié),對于音頻流來說,它存儲著到本頁為止邏輯流在 PCM 輸出中采樣碼的數(shù)目,可以由它來算得時間戳。S39。g39。g39。O39。 OGG page 頁結構,每個頁之間相互獨立,都包含了各自應有的信息,頁的大小是可變的,通常為 4K- 8KB,最大值不能超過 65307bytes( 27+ 255+ 255*255=65307)。針對語音設計的壓縮編解碼器 Speex 和無損的音效壓縮編解碼器 FLAC 與 OggPCM 也可能作為音效層面使用。 OGG 文件的解析 “Ogg”意指一種文件格式,可以納入各式各樣自由和開放源代碼的編解碼器,包含音效、視頻、文字(像字幕)與元數(shù)據(jù)的處理。這樣就可以保持文件頭的大小不變,每次更新的話只需要重寫文件頭,不需要重寫音頻數(shù)據(jù)。 WMA 格式有一個幀全部都是 0,相當于緩沖區(qū)。這些擴展信息的名字和值幾乎都是用 Unicode 的字符串來存儲的,到現(xiàn)在為止只發(fā)現(xiàn)對下面兩個情況例外。當擴展信息名字為WMFSDKVersion 時,這個值表示的是這個 WMA 文件的版本;當擴展信息名字為WM/AlbumTitle 時,這個值代表的就是專輯名;當擴展信息名字為 WM/Genre 時,這個值代表的就是流派。然后又是一個兩個字節(jié)的整數(shù),表示 值的大小。每一個擴展信息包含擴展信息名字大?。?2 字節(jié))和對應的內(nèi)容。擴展 Tag 幀的幀名是十六進制的 “40 A4 D0 D2 07 E3 D2 11 97 F000 A0 C9 北京郵電大學畢業(yè)設計
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1