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

正文內容

基于qt的多媒體播放器系統(tǒng)的設計與實現-資料下載頁

2025-06-27 18:41本頁面
  

【正文】 說,Phonon的架構只需要記住以下的三東西:media object Phonon的基礎,用于管理多媒體來源。來源可能是影音檔等,而能夠提供基本的播放控制,例如開始、暫?;蚪Y束。而提供多媒體資料給media object的則為media source,在給media object之前通常是raw data,再由media object進行轉換。 ?sinks 輸出多媒體,例如在widget上播放影片或是輸出至音效卡(播放音樂)。通常sink是一個播放的裝置(例如音效卡等)。而sink只接受media object來的資料,由media object控制播放;而由sink來處理這些多媒體 ?paths 用來連接Phonon的物件,意即media object與sink之間的連接。 MediaObject類別主要提供一個能夠處理媒體播放的介面。MediaObject可說是處理多媒體檔案最基本的一部份,它接受并管理來自于MediaSource的媒體檔案。而媒體播放、暫停與停止都是由它來控制;而在此之前,media物件必須要與output node連接,如早先所講的,這個nodes主要講媒體輸出至底層的硬體,例如音效卡或顯示卡等,而所需要的output node則是根據多媒體的內容而所不同,目前Phonon有兩種output node;?AudioOutput-聲音播放 ?VideoWidget-影像播放 如果MediaSource包含聲音與影像的話,這兩種node都必須要連接至media物件。?play():開始播放多媒體資料 ?pause():暫停播放 ?stop():停止播放 AudioOutput ClassAudioOutput類別主要是用來把多媒體的聲音送到聲音輸出裝置。所以它能夠經由類似喇叭等輸出裝置來播放聲音,稍早有提過,多媒體資料的來源必須要經過Phonon::createPath()由MediaObject連接。Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this)。mediaObjectsetCurrentSource(Phonon::MediaSource(/mymusic/))。Phonon::AudioOutput *audioOutput =new Phonon::AudioOutput(Phonon::MusicCategory, this)。Phonon::Path path = Phonon::createPath(mediaObject, audioOutput)。編碼:我們已經為我們的應用程序創(chuàng)建了框架,現在只要添加功能即可。點擊“”,并在頂部添加如下代碼行:include QList include QFileDialog include QDesktopServices include Phonon以上代碼的作用是,通過頭文件導入我們要在代碼中使用的Qt函數?,F在需要添加槽,它們在前面編輯過的ui文件中已經定義好了。在“public:”部分中的“~MainWindow()?!毙姓路?,添加如下代碼:private slots: void playPause()。 void addFiles()。 void nextFile()。 void aboutToFinish()。 void finished()??梢钥吹?,這些槽對應于我們在用戶界面中創(chuàng)建的名稱,而且我們還添加了更多的槽來處理內部通信。最后,在“private”部分中添加如下變量,我們將在應用程序的主要邏輯中用到這些變量:QListPhonon::MediaSource sources。Phonon::MediaObject *mediaObject。Phonon::AudioOutput *audioOutput。Phonon::MediaObject *metaInformationResolver。編碼:現在,我們需要做的第一件事情是初始化Phonon,并建立內部的信號和槽。這可以通過標準的初始化方法MainWindow::MainWindow來完成。如果你看一看這個方法的內容,就會發(fā)現應用程序的GUI是由“uisetupUi(this)?!毙衼磉\行的。(注意千萬不要在setupUI之前來調用UI上面的組件,這時候根本還沒創(chuàng)建)這意味著,我們需要在這之前加入我們的預運行代碼。我們將從設置Phonon開始:audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this)。mediaObject = new Phonon::MediaObject(this)。metaInformationResolver = new Phonon::MediaObject(this)。Phonon::createPath(mediaObject, audioOutput)。在Phonon術語中,我們要創(chuàng)建的audioOutput對象叫做音頻接收槽。它是直接與音頻驅動器通信的層的組成部分,并充當MediaObject的虛擬音頻設備。MediaObject位于這一層的上層,增加了諸如暫停、播放和倒帶之類的功能。順便提一句,MusicCategory不一定是必需的,但它可以對未來發(fā)展起到作用,比如可以根據正在收聽的內容自動變化的KDE均衡器。我們將使用“metaInformationResolver”來指向當前音頻文件,而最后一行在接收槽和媒體對象之間建立了連接。Phonon使用了一種叫做“graph”的框架,這意味著對象就像是一幅圖上的節(jié)點,需要連接起來才能創(chuàng)建流向。這正是以上代碼的最后一行的作用?,F在添加如下用于處理playPause()槽的新函數:void MainWindow::playPause(){ switch (mediaObjectstate()){ case Phonon::PlayingState: mediaObjectpause()。 uipushButtonPlaysetChecked(false)。 break。 case Phonon::PausedState: mediaObjectplay()。 break。 case Phonon::StoppedState: mediaObjectplay()。 break。 case Phonon::LoadingState: uipushButtonPlaysetChecked(false)。 break。 }}SeekSlider類別提供一個可滑動的slider來設定多媒體串流播放的位置。所以它會連接到MediaObject,并控制串流目前的位置。VolumeSlider widget提供可以控制聲音裝置音量的widget。 設計成果及分析 QT creator 在使用的過程中也出現了很多問題,首先是版本的問題,一開始編寫調試程序的時候應當選擇在WINDOWS下能夠直接運行的QT SDK,下一步就是在虛擬機下QT creator的安裝,這里要注意的問題就是QT編譯環(huán)境的建立。其次就是QT creator的庫依賴問題,在創(chuàng)建工程的時候可以用GUI選擇你需要依賴的Qt模塊,這樣你可以僅僅通過包含頭文件名即可正確包含頭文件,但是沒有選擇的話,你需要包含相對目錄。我此次的任務是多媒體播放器的設計,而播放器需要用到QT phonon,提供多媒體回放的功能。目前在Qt ,它能實現底層的多媒體播放功能,在一般情況下上層的接口phonon模塊更適合實現這些功能。phonon最初是 一個 源于KDE的項目,為使用音頻和視頻的應用程序開發(fā)提供的一個框架。應用程序不用去管多媒體播放是通過什么實現的(如gstreamer、xine),只需調用相應的接口就行,但這中間需要一個中轉,被稱為backend。Qt也是通過phonon來實現夸平臺的多媒體播放。多媒體文件的播放主要過程包括:文件讀取、分流、解碼、輸出。遺憾的是下載的所有QT版本中沒有phonon模塊,此次任務只能通過編譯實現,不能生成可執(zhí)行文件。最終通過編譯后可看到以下界面,可以通過按鈕實現播放器的簡單功能。 本次設計在Linux操作系統(tǒng)下,Qt/Embedded作為嵌入式系統(tǒng)圖形用戶界面GUI,通過虛擬機的fedora ,基本完成了基于QT的多媒體播放器的實現。在嵌入式系統(tǒng)基礎上,主要分析了Linux操作系統(tǒng)的的特點和優(yōu)勢,了解了Linux內核的基本概念;通過Linux系統(tǒng)下的QT編譯環(huán)境的學習,了解了音頻解碼模塊,簡單應用的QT creator下的phonon構架設計了音樂播放器。不過本次設計過程中,由于時間因素的限制,對于QT庫的研究還不夠徹底,對于視頻解碼模塊的研究也沒能實現,基于QT的播放器的設計與實現是需要依賴phonon框架的,網上所有的版本都缺乏phonon庫,使得在最終結果的實現有了很大的阻礙。此外,在虛擬機下運行的QT也遇到了版本的問題,最終也沒能下載到2440板子上,這些問題都將在以后的學習過程中加以解決。目前,國內外相繼推出了很多商業(yè)化嵌入式系統(tǒng),都在努力的為自己爭取嵌入式的市場份額。其中,Linux操作系統(tǒng)由于其公開的源代碼也在嵌入式的應用中占有一席之地。QT的發(fā)展也越加成熟,今后的重點就轉向了Linux的研究。目前從事的工作也是和嵌入式有關的,希望此次畢業(yè)設計未能實現的都將在以后的學習和工作中一一解決。 謝辭本研究作為我的畢業(yè)論文是在金一鳴老師精心指導和大力支持下完成的,他淵博的知識、開闊的視野和敏銳的思維給了我深深的啟迪,論文凝結著他的汗水。金老師以其嚴謹求實的治學態(tài)度、孜孜以求的敬業(yè)精神和大膽創(chuàng)新的進取精神深深感染了我,對我今后的工作和學習也產生了深遠影響,在此,我要向他表示衷心的感謝。另外,本論文在整個研究過程中還得到本小組其他同學的極大幫助,他們幫我開拓思路,為我指點迷津,精心點撥,熱忱鼓勵,為我完成這篇論文提供了巨大的幫助。參考文獻[1]王森林,(自然科學版),2007[2]孫永杰。引人注目的嵌入式Linux[J]。微電腦世界。2000年35期[3]張海峰,張宏海,張土平。嵌入式LINUX系統(tǒng)[J]。微計算機信息。2004年01期[4]劉軍良。潘剛。李平?;贏RM的嵌入式Linux圖形化終端設計[A]。第25屆中國控制會議論文集(下冊)[C]。2006年[5]陳亮。郝衛(wèi)東。龍飛?;谇度胧絃inux的數字相框設計[A]。中國儀器儀表學會第九屆青年學術會議論文集[C]。2007年[6]共創(chuàng)軟件聯盟。嵌入式操作系統(tǒng)市場分析及技術發(fā)展[N]。計算機世界。2000年[7]蔡志明,盧傳富,:電子工業(yè)出版社,2008[8]葉順流?;贏RM的嵌入式Linux研究與實現[D]。重慶大學。2005年[9]董國. uClinux的分析與移植[D]華東師范大學 , 2004 [10]帥春燕. 基于ARMLinux嵌入式系統(tǒng)的研究與應用[D]昆明理工大學 , 2004 [11]李明. ARM Linux的移植過程及分析[J]電子設計應用 , 2003,(07) [12]衰野,2006,34:103105[13],2000[14] 管理與應用基礎[M] . 北京:清華大學出版社,2002.[15]鄒思軼. 嵌入式Linux 設計與應用[M] . 北京: 清華大學出版社, 2002.[16]Xteam (中國)軟件技術有限公司編著,Qt程序設計,清華大學出版社.[17]李宋琛主編,Linux面向對象窗口高級編程,科學出版社.[18]Haerr ,[19]Trolltech Inc. Qt Reference Documentation . 2001[20]Wang H. Intelligent Agents in the Nuclear Industry. IEEE Computer,1997[21]Frankel C B, Bedworth M D. Control, Estimation and Abstraction in Fusion Architectures:Lessions from Human Information , France: Proc. 2000 International Conf. on Information Fusion,200007[22]Suton R S,Barto A G. Reinforcement Learning: An , MA: MIT Press, 1998
點擊復制文檔內容
職業(yè)教育相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1