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

正文內(nèi)容

基于qt的在線音樂播放器的設計(參考版)

2024-10-28 18:28本頁面
  

【正文】 void CustomM。 } 歌曲控制按鈕功能實現(xiàn) 該功能是通過用戶點擊按鈕, PlayControl 實例發(fā)送消息,當前主界面接受消息后調(diào)用 PlayList實 例設置當前歌曲播放序號,最后主界面得到播放序號后開始播放新的歌曲。 totaltimesetAlignment(Qt::AlignRight)。 totaltime = new QLabel(this)。 .//時間顯示欄 curtimesetGeometry(20,375,50,20)。 singersetGeometry(30,180,300,40)。 albumsetGeometry(30,140,300,40)。 //歌曲信息顯示欄 namesetGeometry(30,100,300,40)。 setBtnStyle()。 _scrollDownsetGeometry(730,280,60,170)。 _scrollDown=new QPushButton(this)。 _scrollUpsetObjectName(scrollUp)。 _scrollUp=new QPushButton(this)。 slidervsetValue(100)。 slidervsetOrientation(Qt::Vertical)。 sliderv= new QProgressBar(this)。)), this, SLOT(OnListViewClicked(const QModelIndex amp。 listViewsetFrameStyle(QFrame::NoFrame)。 //實例化 QListViewEx 類做播放列表 listViewsetGeometry(440, 100, 280, 360)。 refreshsetObjectName(refresh)。 refreshsetGeometry(305,410,90,45)。 connect(playControl, SIGNAL(StateChanged(PlayState)),this, SLOT(btnClicked(PlayState)))。 playControl=new PlayControl(this)。//播放進度條 seekslidersetMediaObject(STGlobals::instance().getMediaPlayer())。 back_musicsetObjectName(back_music)。//調(diào)用 BaseWidget 基類函數(shù) back_music = new QFrame(this)。 timeLength = (timeLength).text()。 singer = (singer).text()。node) { name = (name).text()。 } totalRecordCount =i。 (ndFriend)。 i++) { QDomNode ndFriend = (i)。 for (。 ()。 /*****************************************************/ /* 歌曲列表解析 */ /****************************************************/ void MusicList::Parse(const QDomNode amp。node)。 QListMusicInfo lstMusicInfo。 }。 void Parse(const QDomNode amp。 QString path。 QString album。 功能描述:此模塊主要是將 XML 格式的文件解析出來并存到一個全局的結構體中。 XML 是 標準通用標記語言 (SGML) 的子集,非常適合 Web [10]傳輸。將解析出來的信息存儲到一個全局的結構體變量中,最后通過讀取該結構體的信息將歌曲名顯示到列表中。 } QListViewEx 歌曲列表類 功能描述: 此功能模塊實現(xiàn)通過一個對話框顯示歌曲的相關信息,并且高亮顯示當前播放的歌曲,而且該列表支持用戶點擊播放。qDebug()playlist:curentIndexg_listViewSize。 PlayList::currentPlay() //獲取當前播放歌曲信息 12 { return pmusiclistlstMusicInfo[curentIndex]。 return pmusiclistlstMusicInfo[curentIndex]。 PlayList:: GetPre() //上一首 { if (curentIndex0) curentIndex。 return pmusiclistlstMusicInfo[curentIndex]。 PlayList:: GetNext() //下一首 { if (pmusiclisttotalRecordCountcurentIndex+1) curentIndex++。 PlayList 歌曲切換類 功能描述: 此功能模塊實現(xiàn)通過一個變量控制當前所播放的歌曲,并且如果歌曲到了第一首或最后一首就循環(huán)切換。 break。 } 11 else setBtnState()。 } else if (btnobjectName() == play) { btnhide()。i++) { if (btnobjectName() == pause) { btnhide()。 for (int i=0。 //將所 有 button 放放到容器中,便于管理操作 } } 以上代碼功能是定義各個控制按鈕的大小位置,對象名,狀態(tài)消息等,然后在構造函數(shù)中通過一個 for 循環(huán)生成。 connect(btn, SIGNAL(clicked()),this, SLOT(btnClicked()))。 btnsetGeometry(g_BtnDescription[i].rect)。iPLAY_STATE_COUNT。 //描述 button 的大小位置及對象名 ButtonDescription g_BtnDescription[PLAY_STATE_COUNT] = { {_pre, PLAY_STATE_PRE, QRect(0,0,90,45) }, { _next, PLAY_STATE_NEXT, QRect(190,0,90,45) }, { play, PLAY_STATE_PLAY , QRect(95,0,90,45) }, { pause, PLAY_STATE_PAUSE,QRect(95,0,90,45) }, }。 QRect rect。代碼如下: typedef struct _ButtonDescription { const char *btnNme。 為了軟件的模塊化,在該類中我沒有進行任何操作處理,而是用發(fā)送消息的方式將各控制按鈕的點擊事件傳遞出去。該界面包括設置統(tǒng)一背景,風格,還有一個返回按鈕,以及一個設置個界面標題的函數(shù)。也就是說,每個模塊只完成系統(tǒng)要求的獨立子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨立性。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。 圖 44 項目分層列表 系統(tǒng) GUI 功能模塊設計 9 軟件的設計中最重要的就是軟件的模塊化。如圖 44 所示。因為我們在程序中會用到數(shù)據(jù)庫的存儲與查找,網(wǎng)絡模塊的網(wǎng)絡交互, XML 文件的解析,及多媒體播放所需的Phonon 庫。最主要的是第二頁的Project Settings 選項。 對于創(chuàng)建的每個 Visual Studio2020 應用程序來說 ,Visual Studio2020 使用一個項目工作區(qū)來存儲該項目所需的所有文件 ,其中“項目工作區(qū)” (project workspace)或稱為“工作區(qū)” (workspace)就是一個文件夾 ,與項目相關的文件存儲在該文件夾下 .而一個項目又由一定數(shù)量的文件組成 ,如果要生成一個可執(zhí)行程序 ,其中一個文件還必須是源代碼 ,而這些 文件通常都存儲在同一工作區(qū)文件夾中 .我們用Visual Studio 選擇一個項目類型 ,創(chuàng)建一個新的 Studio2020 應用程序首先從菜單單欄中選擇文件項打開如圖 41 所示的文件子菜單 ,從這個子菜單中選擇新建選項 ,打開如圖 新建對話框 . 圖 41 文件子菜單 7 圖 42 新建對話框 在 42 所示的新建對話框中 ,左邊的項目類型選 Qt4 Projects,右邊的模版選Qt Application,然后將下面的工程名和路徑填寫好。音樂播放器的界面有 “播放 /暫?!?、“上一首”、“下一首”“刷新”以及歌曲列表上下翻頁和返回 7 個按鈕。如圖 31 所示: 圖 31 系統(tǒng)過程實現(xiàn)流程圖 主界面 調(diào)用webservice 播放列表 音樂播放 /暫停 播放控制 退出結束 5 GUI 界面設計 播放器的 GUI 設計可以包含兩個 方面,界面布局的設計和生成按扭的代碼設計。 將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應盡量保持其獨立性。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。我們需要描述的是系統(tǒng)的總的體系結構。在需求分析階段,搞清楚了軟件“做什么”的問題,形成了目標軟件的邏輯模型。開發(fā)過程中,在各種矛盾的目標之間作權衡,并在一定的限制的條件下經(jīng)費、時間、可用的軟、硬件資源等使上述各方面最大限 度的得到滿足??删S護性包括了可讀性、可測試性等含義。 圖 21 播放過程示意圖 運行及其它需求分析 本軟件對其它軟件幾乎沒有依賴性,程序健壯性較好有較好的可維護性、可靠性、可理解性、效率。還有此播 放器支持進度條拖動,達到“隨拖隨放”的效果。另外歌曲列表也能進行翻頁顯示,在歌曲列表右側有兩個上下翻頁按鈕。用戶點擊“上一首”或“下一首”按鈕 [6],播放器將播放上一首或下一首歌曲。在播放器正在運行時,用戶在歌曲列表選擇一首歌曲后單擊,播放器將播放選中的歌曲并同時顯示當前播放進度。每個后端都可讓 Phonon 控制基本功能,如播放、暫停和搜尋 和之后版本使用了 Phonon[5],作為跨平臺的音頻 /視頻播放。 Phonon 提供一個穩(wěn)定的 API 允許 KDE 4獨立于任何一個聲音系統(tǒng)服務器。 Web Service 為整個企業(yè)甚至多個組織之間的業(yè)務流程的集成提供了一個通用機制。 Web Service 也很容易部署, 因為它們基于一些常規(guī)的產(chǎn)業(yè)標準以及已有的一些技術,諸如 XML 和 HTTP。依據(jù) Web Service規(guī)范實施的應用之間, 無論它們所使用的語言、 平臺或內(nèi)部協(xié)議是什么, 都可以相互交換數(shù)據(jù) [4]。 VS2020 簡介 Visual Studio 是微軟公司推出的開發(fā)環(huán)境, Visual Studio 可以用來創(chuàng)建 Windows 平臺下的 Windows 應用程序和網(wǎng)絡應用程序,也可以用來創(chuàng)建網(wǎng)絡服務、智能設備應用程序和 Office 插件。通過使用 Qt,您可以一次性開發(fā)應用程序和用戶界面,然后將其部署到多個桌面和嵌入式操作系統(tǒng),而無需重復編寫源代碼。主界面上的播放控制按鈕點擊后會發(fā)出相應的消息,收到消息后會進行對應的處理。當用戶打開主界面后,程序自動調(diào)用 Network 網(wǎng)絡模塊和Webservice 網(wǎng)絡接口發(fā)送數(shù)據(jù)請求。 本次畢業(yè)設計的意義在于結合 Qt 提供的先進的思想和多樣的媒體控制手段,結合用戶使用音樂播放器的習慣和對媒體播放器的要求,設計了一款界面清楚明了,操作簡單實效,可以實現(xiàn)在播放列表中可以加載多個網(wǎng)絡多媒體文件,自動連續(xù)播放多個網(wǎng)絡多媒體文件,用戶能隨意改變播放順序,在打開播放器時能夠自動加載網(wǎng)絡播放列表等功能的媒體播放器。此軟件具有一般播放器的常用功能,界面沿用了標準的 Windows 窗口,主窗口的功能有對要播放文件的各種控制,所播放曲目的名稱,通過主窗口能有選擇的播放歌曲。并且這些公司沒有開放它們的源代碼。 【關 鍵詞】: Qt、 Phonon、 Web S
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1