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

正文內(nèi)容

基于vc的媒體播放器設(shè)計(jì)與功能實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-04-03 10:55 本頁面
 

【文章內(nèi)容簡介】 計(jì)時(shí)器 每隔 1秒就自動(dòng)執(zhí)行下響應(yīng)函數(shù)ontimer() } ( 3) Onplay();播放函數(shù)及其他多媒體播放控制按鈕 void CKejianDlg::Onplay() { ()。 //暫停后繼續(xù)播放 } 如同播放函數(shù)所示,其他控制播放狀態(tài)的函數(shù)都可以直接調(diào)用添加的控件的類的對(duì)象調(diào)用實(shí)現(xiàn),按鈕響應(yīng)函數(shù)和調(diào)用的函數(shù)關(guān)系如表 25 所示。 表 25響應(yīng)函數(shù)和調(diào)用函數(shù)關(guān)系 響應(yīng)函數(shù) 調(diào)用函數(shù) 響應(yīng)函數(shù) 調(diào)用函數(shù) Onfastre6verse() Reverse() Onfulscreen() (1) Onfastforward() Forward() Onmute() (m_Setting.GetMute())。 Onstop() () Onaddvol() (m_Setting.GetVolume()+10) Onpause() se() Ondecvol() (m_Setting.GetVolume()10 ( 4)播放列表狀態(tài) 這款播放器設(shè)計(jì)了保存播放列表、刪除播放列表、刪除當(dāng)前三種對(duì)播放列表狀態(tài)的控制,其中函數(shù)主要調(diào)用了 m_list 類中的函數(shù),在初始化是加入了一個(gè)讀取上次保存的播放列表的指針函數(shù),增加了播放列表的人性化。具體函數(shù)如下: void CkejianDlg::Onsave() {CStdioFile file。 (.\\,CFile::modeCreate|CFile::modeReadWrite|CFile::typeText)。//打開指定文件 for(int i=0。i()。i++) {CString strtemp。 16 (i,strtemp)。 strtemp+=\n。 (strtemp)。 //保存播放列表 } } void CkejianDlg::Ondellist() { CStdioFile file。 ()。//刪除列表 (.\\,CFile::modeCreate)。 } void CkejianDlg::Ondellistcur() {(())。//刪除當(dāng)前光標(biāo)所選擇的行 Onsave()。//自動(dòng)保存刪除某一行后的播放列表 } ( 5)播放模式 播放模式選擇需要使用 wm_timer 消息,如圖 14 所示,并及時(shí)調(diào)用SetTimer()和()函數(shù) OnTimer。初始化順序播放默認(rèn)設(shè)置,當(dāng)你雙擊發(fā)揮開始創(chuàng)建一個(gè)計(jì)數(shù)器,每一次執(zhí)行以下的 OnTimer 函數(shù)。 OnTimer 函數(shù)將播放狀態(tài),如果當(dāng)前播放完畢,在單選按鈕的檢測,以便選擇程序。如果比賽 圖 M_TIMER 消息添加 順序,將自動(dòng)執(zhí)行下一個(gè)項(xiàng)目;如果是在 0 列表播放,產(chǎn)生隨機(jī)數(shù)的文件數(shù),然后執(zhí)行;如果是一首循環(huán),然后 一直執(zhí)行當(dāng)前文件。 初始化程序如下: 17 (0)。//選擇第一行 ((),m_pathname)。 ((CButton *)GetDlgItem(IDC_RADIO1))SetCheck(true)。 //默認(rèn)播放模式為順序播放 計(jì)數(shù)器函數(shù) OnTimer 程序如下: void CKejianDlg::OnTimer(UINT nIDEvent) { int index=()。//獲取播放狀態(tài) if(index==1)//如果播放完成 { if(((CButton *)GetDlgItem(IDC_RADIO1))GetCheck())//如果是順序播放 { CString str。 int index=()+1。 if(index=()) index=0。 //如果播放完最后一曲就自動(dòng)播放第一首 (index,str)。 (str)。 (index)。//自動(dòng)置光標(biāo) }//這樣就實(shí)現(xiàn)了順序播放 if(((CButton *)GetDlgItem(IDC_RADIO2))GetCheck())//隨機(jī)播放 { srand(time(0))。//目的在于每次都能產(chǎn)生不同的隨機(jī)數(shù)序列 (rand()%())。 //隨機(jī)選擇 ()1 的任意一個(gè)數(shù)即隨即選擇m_list 里的文件 ((),m_pathname)。 (m_pathname)。 } 18 if(((CButton *)GetDlgItem(IDC_RADIO3))GetCheck())//單曲循環(huán) { ((),m_pathname)。 (m_pathname)。 } } CDialog::OnTimer(nIDEvent)。 } ( 6) Onabout()和 Onexit()函數(shù) 因?yàn)檎{(diào)用自身編輯的對(duì)話框并且修改了工程中的 ABOUTBOX 資源,所以也要對(duì)其進(jìn)行一定的修改。首先,是對(duì) Onabout()函數(shù)的修改: void Ckejian::Onabout() { CAboutDlg aboutDlg。 ()。 } 其次,在 onexit()函數(shù)的重載。添加對(duì)話框,制作簡單沒有介紹,這是介紹添加對(duì)話框和相應(yīng)的類和添加的頭文件。 制定一個(gè)好的對(duì)話框,對(duì)話框的使用 ClassWizard 對(duì)話框類的關(guān)聯(lián),作為一個(gè)調(diào)用的結(jié)果,因此建立對(duì)象的對(duì)話框框,如圖 中所示。 圖 選擇創(chuàng)建一個(gè)新的類,你需要在輸入并輸入一個(gè)名稱,將添加一個(gè)對(duì)應(yīng)的 19 和檢查。在項(xiàng)目文件視圖文件是確定的,那么你可以在自制的對(duì)話 框類和對(duì)象。所謂的對(duì)話框如下圖所示,和刪除在完成退出計(jì)數(shù)器,釋放內(nèi)存。 void CKejianDlg::Onexit() { CCheck Check。 //生成 CCheckBox 類的對(duì)象 CheckBox if(()==IDOK) //彈出對(duì)應(yīng)的模態(tài)對(duì)話框 { CDialog::OnCancel()。 //點(diǎn)擊確定則退出 KillTimer(1)。//退出程序時(shí)刪除計(jì)數(shù)器 } } ( 7)的菜單欄添加生產(chǎn)函數(shù) 做一個(gè)菜單欄添加只要到對(duì)話框中相應(yīng)的,本文不再。 每個(gè)菜單項(xiàng)的功能,只要菜單項(xiàng)進(jìn)入相應(yīng)的功能按鈕控制相應(yīng)的 ID 相同,可以方便快速地調(diào)用。 20 3 系統(tǒng)測試 測試目的 根據(jù)用戶需求,設(shè)計(jì),概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)測試用例,測試軟件系統(tǒng)。其目的是: 1:測試是為了發(fā)現(xiàn)錯(cuò)誤的程序,程序的執(zhí)行過程。 2:好的測試方案是可能發(fā)現(xiàn)的錯(cuò)誤的測試計(jì)劃到目前為止還沒有被發(fā)現(xiàn) 。 3:成功的測試是發(fā)現(xiàn)到目前為止被發(fā)現(xiàn)的錯(cuò)誤的測試。 測試環(huán)境 Visualc++ 操作系統(tǒng) Windows xp。 測試重點(diǎn)是系統(tǒng)后臺(tái)基本功能模塊。 調(diào)試報(bào)告 有在設(shè)計(jì)過程中的 許多錯(cuò)誤,錯(cuò)誤的搜索使用 VC++ 6 編譯,根據(jù)錯(cuò)誤,改正錯(cuò)誤。在這一點(diǎn)錯(cuò)誤不重復(fù),有沒有相應(yīng)的頭文件,在一個(gè)小錯(cuò)誤,正確的變量名稱不明確,容易修改,將在下面描述,程序的調(diào)試和誤差修正方法 ( 1) 問題一 在播放列表的設(shè)計(jì)時(shí),單擊“播放列表成員沒有播放的文件已被修改,代碼沒有改變,所以,經(jīng)過一段時(shí)間的一個(gè)按鈕,而不是雙發(fā)揮的功能如圖 所示。 圖 調(diào)試結(jié)果 1 最終在在線數(shù)據(jù)獲取的問題的解決方案 : 雙 播放功能, 在播放列表中添加一個(gè)雙擊消息映射函數(shù)的實(shí)現(xiàn),然后 ondblclklist1()的代碼,從而實(shí)現(xiàn)雙播放功能。 21 ( 2) 問題二 圖 此段程序在 OnInitDialog()函數(shù)中,連接編譯都未報(bào)錯(cuò),但是播放、暫停等多個(gè)按鈕控件無法工作。后考慮到其他類都進(jìn)行了的類的綁定,所以也要對(duì)CWMPControls 類進(jìn)行綁定,其中 static_cast 相當(dāng)于將某一對(duì)象和賦值符號(hào)右邊的值進(jìn)行綁定,由于是靜態(tài)綁定,故綁定后不再改變,而后續(xù)程序中出現(xiàn)的m_Control 對(duì)象卻并未出現(xiàn)對(duì)應(yīng)的綁定,如圖 所示。添加代碼: m_Control = static_castCWMPPlaylist(())。之后,后續(xù)的控件的操作可以正常進(jìn)行了。 ( 3) 問題三 alog() 函數(shù),編譯器將不會(huì)連接錯(cuò)誤,但播放,暫停等多個(gè)按鈕控件將不工作。在其他類的賬戶是類綁定,所以也被結(jié)合在 static_cast cwmpcontrols, 相當(dāng)于一個(gè)對(duì)象,指定一個(gè)符號(hào)在綁定的值的右側(cè),是靜態(tài)綁定,綁定不改變,并在隨后的程序 m_control 對(duì)象的出現(xiàn)是不受約束的相應(yīng)的。添加代碼: m_control = static_cast< cwmpplaylist ( ()); 在那之后,操作的控制可以是正常的。 ( 4) 停止按鈕開始編程,直接調(diào)用 功能,如圖 所示,但當(dāng)調(diào)試時(shí),請(qǐng)單擊“停止”按鈕,玩家停止然后繼續(xù)播放下一首歌。經(jīng)過分析,它是計(jì)數(shù)功能的問題,由于游戲模式功能外,當(dāng)停止時(shí),計(jì)數(shù)器不停止工作,應(yīng)對(duì)本輪繼續(xù)播放功能的執(zhí)行,所以后來添加刪除計(jì)數(shù)器代碼: killtimer( 1) ,如圖所示。 22 圖修改后的代碼 圖 原來的代碼 圖 ( 5) 問題四 在退出按鈕設(shè)計(jì)的四個(gè)問題是設(shè)計(jì)一個(gè)退出提醒功能,以防止用戶不小心使用時(shí)的錯(cuò)誤和錯(cuò)誤的 退出 程序,開始 更正 了這一點(diǎn),然后讓學(xué)生得到答案,然后 添加另一個(gè)對(duì)話框,然后創(chuàng)建一個(gè)新的類別,增加在頭文件 包括 “檢查 ”,然后進(jìn)行編程,以實(shí)現(xiàn)特定的功能,如圖 所示。 圖 測試結(jié)果 Void CKejianDlg::Onstop() { (); //停止函數(shù) } Void CKejianDlg::Onstop() { (); //停止函數(shù) Killtime( 1); 刪除計(jì)數(shù)器 } 23 圖 剛運(yùn)行時(shí)隱藏播放列表 圖 關(guān)于對(duì)話框 圖 菜單功能 安徽新華學(xué)院 2021 屆本科畢業(yè)論文(設(shè)計(jì)) 24 結(jié) 論 從程序運(yùn)行調(diào) 試的結(jié)果來看,設(shè)計(jì)基本成功。 經(jīng)過這次課程設(shè)計(jì),讓我對(duì)于 MFC 編程的方法有了更新更全面的認(rèn)識(shí)和深入的了解,對(duì) VC++的運(yùn)用更是熟練了很多,而且有了系統(tǒng)地設(shè)計(jì)軟件的概念,這對(duì)我以后的軟件開發(fā)打下了很好的基礎(chǔ)。但是畢竟只是一個(gè)人開發(fā),且時(shí)間有限,技術(shù)知識(shí)不夠,當(dāng)然不能跟主流的媒體播放器(比如國內(nèi)的迅雷播放器,暴風(fēng)影音等)相比,本軟件還可以繼續(xù)開發(fā),比如實(shí)現(xiàn)屏幕大小的任意調(diào)節(jié)等。 在所給的論文設(shè)計(jì)中,多媒體播放器的設(shè)計(jì)最能吸引我。我想,對(duì)于設(shè)計(jì)這個(gè)平時(shí)用得最多的軟件,應(yīng)該不難吧。然而事實(shí)往往出人意料,著手開始設(shè)計(jì) 程序流程圖,我才發(fā)現(xiàn)去年學(xué)的 C++語言知識(shí)所剩無幾,很多操作都不能熟練完成,只能找到以前的課本和相關(guān)資料再學(xué)習(xí)。花了兩天的功夫才把資料基本看完,導(dǎo)致設(shè)計(jì)流程圖的時(shí)間大大減少,沒有設(shè)計(jì)出比較好的流程圖,這對(duì)后續(xù)的程序編輯帶來了一定的困難。由此,我深刻地體會(huì)到,在編程之前,畫程序流程圖具有不可取代的重要性。 在更改過的流程圖基礎(chǔ)上,我對(duì)自己所設(shè)定的功能進(jìn)行編程,提交程序時(shí),由于我通過調(diào)節(jié)滑塊控制音量并在一個(gè)編輯框中同步顯示音量大小,謝老師問我如何實(shí)現(xiàn)在編輯框中輸入數(shù)值反過來改變音量,我當(dāng)時(shí)沒能正確回答,老師提示我用 GetPos 相反的函數(shù)實(shí)現(xiàn)該功能。聽取老師意見后,我采用 SetPos 函數(shù)成功實(shí)現(xiàn)該功能。其實(shí)這兩個(gè)函數(shù)都屬于一個(gè)類的成員函數(shù),但我只懂其一,說明自己看參考資料時(shí)不細(xì)心,遺漏了某些重要知識(shí),以后需要多多注意。 總而言之,這次課程設(shè)計(jì)讓我學(xué)會(huì)了很多,發(fā)現(xiàn)了自己的不足,加深了對(duì)提出問題 分析問題 解決問題這一思維方式的運(yùn)用,鍛煉了自己的邏輯思維和編程能力,為以后工作學(xué)習(xí)打下了較好的基礎(chǔ)。 25 致 謝 在該次論文設(shè)計(jì)的過程中,感謝老師的指導(dǎo)以及同學(xué)之間的幫助,在很多不明白的方面比如執(zhí)行 時(shí)出錯(cuò),給于了充分的幫助。在此次論文的制作過程中,遇到了大量的問題這使我明白了自己的很多不足之處,在學(xué)術(shù)上是永無止境的,所以我還是要更加努力的前進(jìn)去壯大和充實(shí)自己,同時(shí)也使我深深的意識(shí)到不管自己是否察覺,身邊都會(huì)有很多人在幫助自己。 還要感謝和我的幾位同學(xué),和同事莊文峰,是你們在我平時(shí)設(shè)計(jì)中和我一起探討問題,并指出我設(shè)計(jì)上的誤區(qū),使我能及時(shí)的發(fā)現(xiàn)問題把設(shè)計(jì)順利的進(jìn)行下去,沒有你們的幫助我不可能這樣順利地結(jié)稿,在此表示深深的謝意。 26 參 考 文 獻(xiàn) [1] 《 Visual C + + 多媒體開發(fā)指南 》 . 李博軒 . 清華大學(xué)出版社 , 2021. [2]《 深入解析 MFC》 . GEORGE SHEPHERDSCOT WINGO 著 , 趙劍云,卿瑾譯
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1