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

正文內(nèi)容

基于vc的多媒體播放器設(shè)計-畢業(yè)論-文庫吧

2025-05-16 16:31 本頁面


【正文】 綁定以及定義,在后面的程序中需要調(diào)用這些類的成員函數(shù)。 對于打開文件按鈕,需要調(diào)用通用文件對話框類,并利用 listbox 中的 AddString函數(shù)把選中的文件添加到播放列表中,在 MFC學(xué)習(xí)中有涉及。對于一 些基本的功能的實現(xiàn),如 播放、暫停、全屏、音量增大、音量減小、靜音、快進(jìn)、快退等功能,主要調(diào)用CWMPControl 和 CWMPPlayer 類中的成員函數(shù)來進(jìn)行實現(xiàn)。 對于播放列表,這次設(shè)計使用了 SetWindowPos 函數(shù)來改變一個子窗口彈出的尺寸和方向,并一些相關(guān)的函數(shù)實現(xiàn)了保存列表、刪除列表、刪除當(dāng)前的功能。對應(yīng)播放列表,我還添加了播放模式選擇的功能,提供了順序播放、隨即播放、單曲循環(huán)三種選擇。這當(dāng)中運用的 ontimer() 函數(shù)和 settimer() 函數(shù)來控制播放模式。參照以上的設(shè)計思想,流程圖如圖 1所示 : 圖 1 流程圖 5 4 軟件設(shè)計 設(shè)計步驟 首先,打開 Microsoft Visual 軟件,新建一個工程如圖 2 所示,以HuangJianfei 為工程名,然后將此工程定義為基于對話框的 MFC 應(yīng)用程序如圖 3所示,點擊完成就成功建立了一個基于對話框 的工程。 圖 2 工程建立 圖 3 基于對話框的 MFC 程序 6 在建立好工程之后,首先是 Windows Media Player 控件的添加:建立空白對話框之后,在對話框的空白處單擊鼠標(biāo)右鍵,選擇 Insert ActiveX Control 菜單項。選擇Windows Media Player 控件,如圖 4所示。加入控件后,此時該控件與該對話框并沒有聯(lián)系,需要對其進(jìn)行變量的關(guān)聯(lián)。 圖 4 Windows Media Player 控件的添加 添加完該控件之后可以發(fā)現(xiàn),該控件與右邊控件工具欄添加的控件的形式與功能完全不同,是一種更為高級的控件,將該控件名改為 IDC_player,如圖 5所示 : 圖 5 Windows Media Player 控件 雖然 已經(jīng)添加了該控件,但是可以發(fā)現(xiàn), 該 控件 并 沒有與工程中的對話框發(fā)生任何聯(lián)系,所以需要對其進(jìn)行變量的關(guān)聯(lián),所屬類為 HuangJianfei 類,變量類型為CWPPlayer4如圖 6 所示 : 7 圖 6 關(guān)聯(lián)變量 關(guān)聯(lián)變量之后,才算是真正的添加完了該控件,可以發(fā)現(xiàn)在關(guān)聯(lián)變量之后,控件工具欄多了 Windows Media Player 控件的選項,并且在 Source Files 中增加了 17 個類,相應(yīng)的頭文件也增加了 17個,如圖 7 所示 : 圖 7 添加控件后的變化 其中最主要的類為 Cwmpplayer4, Cwmpcontrols, Cwmpmedia, Cwmpplaylist,Cwmpsettings 五大類。 Cwmpplayer4類主要是關(guān)于對其他類的對象的調(diào)用以及基本的控件功能的實現(xiàn),提供了與 Windows Media Player 控件進(jìn)行交互的基本方法,其中部分成員函數(shù)還能夠進(jìn)一步獲取得到其他相關(guān)類對象的實例; Cwmpcontrols 類主要是對控件的更多的操作; Cwmpmedia 類主要是對于媒體文件資源的一些操作; Cwmpplaylist 類主要是關(guān)于播放列表的操作; Cwmpsettings 類主要是對于媒體文件中的一些基本設(shè)置的操作。 8 對于該控件的添加以及內(nèi)部函數(shù)的理解需要較多時間熟悉,添加完此關(guān)鍵控件之后,進(jìn)行界面的設(shè)計。 界面設(shè)計 首先是打開按鈕,用于媒體文件的打開。然后依次是,播放、暫停、 保存列表、清空列 表、刪除當(dāng)前、隱藏 /展開、 靜音、播放 、 停止、退出等按鈕。對其進(jìn)行變量的關(guān)聯(lián),以及 ID的修改,修改結(jié)果如表 表 2所示: 表 1 控件 ID 以及關(guān)聯(lián)變量 控件 Caption 按鈕 ID 關(guān)聯(lián)變量類型 關(guān)聯(lián)變量名稱 WMPlayer IDC_player CWMPlayer4 m_HuangJianfei 表 2 控件 ID 以及對應(yīng)響應(yīng)函數(shù) 控件 Caption 按鈕 ID 消息響應(yīng)函數(shù) 打開 IDC_OPEN OnOpen() 播放 IDC_PLAY OnPlay() 暫停 IDC_PAUSE OnPause() 保存列表 IDC_SAVELIST OnSavelist() 清空列表 IDC_DELLIST OnDellist() 刪除當(dāng)前 IDC_DELLISTCUR OnDellistcur() 雙擊 播放列表 IDC_LIST1 OnDblclkList1() 隱藏 /展開 IDC_ONLIST OnOnlist() 列表框 IDC_LIST1 OnDblclkList1() 靜音 IDC_MUTE OnMute() 表 3 控件 ID 以及對應(yīng)響應(yīng)函數(shù) 控件 Caption 按鈕 ID 消息響應(yīng)函數(shù) 停 止 IDC_STOP OnStop() 退出 IDC_EXIT OnExit() 關(guān)于 IDC_ABOUT OnAbout() 以上為有對應(yīng)控件的對象的關(guān)聯(lián),除了有對應(yīng)控件的,還需要有 Windows Media Player 控件所生成的 17 個類中的幾個重要的類進(jìn)行對象的定義, 可知,對于成員對象的定義和成員函數(shù)的聲明都放在頭文件中,此次設(shè)計共主要用到其中 3個類 ,因為設(shè)計了一個退出提醒彈出框,所以也要對其定義,具體如表 3所示: 表 4 其他類及對應(yīng)對象 類名 對象名 類名 對象名 CWMPControls m_Control CWMPPlaylist m_Playlist CWMPMedia m_Media CString m_PathName CWMPSettings m_Setting CString m_FileName 除了對各個控件關(guān)聯(lián)變量以及消息響應(yīng)函數(shù),還要對對話框類進(jìn)行消息響應(yīng)函數(shù)的關(guān)聯(lián),因為此次設(shè)計中添加了播放模式選擇的功能,所以需要用到 WM_TIMER 消息響應(yīng)函數(shù)以及 SetTimer()和 OnTimer()函數(shù)來實現(xiàn)這項功能,將對話框類進(jìn)行該消息響應(yīng)函數(shù)的關(guān)聯(lián)并書寫程序。 添加方法如圖 8所示。 9 圖 8 添加 WM_TIMER 消息響應(yīng)函數(shù) 最終得到各個空間分布后的界面如圖 9 所示 : 圖 9 多媒體播放器界面 除了以上主對話框外,我還對 ABOUTBOX 進(jìn)行了重新設(shè)計,也自制了一個 Check 對話框,其中 ABOUTBOX 如圖 10所示。 Check 對話框是在用戶點擊退出按鈕自動彈出的提醒窗口,主要用于防止用戶誤按關(guān)閉按鈕導(dǎo)致程序關(guān)閉,有利于用戶的使用,增強(qiáng)軟件的友好性,如圖 11所示。 10 圖 10 修改后的 ABOUTBOX 對話框 圖 11 提醒對話框 關(guān)于菜單的制作,首先,需要在 ResourceView 中加入資源 Menu,后增加對應(yīng)的菜單項以及菜單自己布局,下拉菜單則需要和按鈕關(guān)聯(lián),其方法是將其 ID 和按鈕的 ID 一樣,菜單布局圖 12 所示。 圖 12 菜單欄 關(guān)鍵功能的實現(xiàn) 對于各個函數(shù)的介紹,本 論 文以關(guān)鍵代碼以及注釋的方式進(jìn)行介紹,首先介紹主對話框中函數(shù)的實現(xiàn)以及說明: (1)Onopen()。 //打開函數(shù) void CHuangJianfeiDlg::OnOpen() 11 其中難點在于對于陌生函數(shù)的理解,由于類數(shù)目較多,各類又有各自不同的成員函數(shù),運用起來比較困難。除了調(diào)用通用文件對話框和較為熟悉之外,其他的函數(shù)都是平時沒有見過的。播放列表中獲取路徑名是靠的添加主要依靠于 GetNextPathName()函數(shù),而 ()函數(shù)是將項目名添加到播放列表中。 (2)Onlist()。隱藏 /展開 播放列表按鈕函數(shù)和 OnDblclkList1()。播放列表函數(shù): int flag=0。 void CHuangJianfeiDlg::OnOnlist() 對于 隱藏 /展開 播放列表按鈕,設(shè)計在那的功能是運行軟件時播放器的播放列表是展開 的,當(dāng)點擊按鈕時,播放列表 隱藏 。為了實現(xiàn)這個功能,我將播放列表 LIST1和播放列表按鈕關(guān)聯(lián)起來,關(guān)系設(shè)為控制。為此,在程序定義了一個全局變量 flag,將其設(shè)為一個標(biāo)志, 在初始化時定義窗口無相對位移,當(dāng)點擊按鈕是,窗口位移,因此就實現(xiàn)了播放列表的隱藏和出現(xiàn)的功能。而對于播放列表,則要求它實現(xiàn)雙擊播放功能,所以對列表控件增加一個消息映射,并選擇雙擊消息函數(shù)響應(yīng),如圖 13 所示。在其中編程時也加入了執(zhí)行響應(yīng)函數(shù) SetTimer(),當(dāng)點擊函數(shù)時就開始創(chuàng)建計數(shù)器,以便實現(xiàn)播放模式的功能。 圖 13 播放列表消息映射函數(shù)設(shè)置 具體 函數(shù) 如下所示: void CHuangJianfeiDlg::OnDblclkList1() ( 3)播放函數(shù)及其他多媒體播放控制按鈕 void CHuangJianfeiDlg::OnPlay() //播放 void CHuangJianfeiDlg::OnPause() //暫停 void CHuangJianfeiDlg::OnStop() //停止 12 ( 4) 播放模式 播放模式的選擇需要用到 WM_TIMER 消息如圖 14所示,以及適時調(diào)用 SetTimer()和 OnTimer()函數(shù)。初始化時默認(rèn)設(shè)置為順序播放,當(dāng)雙擊播放時就開始創(chuàng)建計數(shù)器,每 1 秒就執(zhí)行以下 OnTimer函數(shù)。而 OnTimer 函數(shù)就會獲得播放狀態(tài),如果當(dāng)前的播放完了,就檢測單選按鈕在哪,從而選擇執(zhí)行哪個程序。如果是順序播放,就自動執(zhí)行下一項目;如果是隨 機(jī) 播放,就在 “ 列表的文件數(shù) ”中 產(chǎn)生一個隨 機(jī) 數(shù),然后執(zhí)行;而如果是單曲循環(huán),那么就一直執(zhí)行當(dāng)前文件。 圖 14 M_TIMER 消息添加 初始化(在 OnInitDialog()函數(shù)下)程序如下: (0)。 //選擇第一行 ((CButton*)GetDlgItem(IDC_RADIO1))SetCheck(true)。 //默認(rèn)播放模式為順序播放 計數(shù)器函數(shù) OnTimer 程序如下: void CHuangJianfeiDlg::OnTimer(UINT nIDEvent) ( 5) Onabout()和 Onexit()函數(shù) 因為調(diào)用自身編輯的對話框并且修改了工程中的 ABOUTBOX 資源,所以也要對其進(jìn)行一定的修改。首先,是對 Onabout()函數(shù)的修改: void CHuangJianfeiDlg::OnAbout() 其次,是對 Onexit()函數(shù)的重載。對于添加自制的對話框,制作方面較為簡單 ,其函數(shù) 如下: void CHuangJianfeiDlg::OnCancel() ( 6)菜單欄的添加制作以及功能 菜單欄的制作和添加不難,只要將其
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1