




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
用VisualStudio設(shè)計的多媒體播放器摘要本課程設(shè)計的目的是制作一個可播放目前主流媒體格式的多媒體播放器,其基本功能應(yīng)具有媒體播放、音量調(diào)節(jié)、播放進(jìn)度選擇、暫停、停止以及歌曲信息的查詢與添加等,使之成為一款簡易的媒體播放設(shè)備,能夠完美的播放市面上大多數(shù)的音頻、視頻文件。在課程設(shè)計中,系統(tǒng)開發(fā)平臺為WindowsXPProfessionalSP2,程序設(shè)計環(huán)境采用VisualC++6.0。在程序設(shè)計中,我利用了Microsoft公司開發(fā)的ActiveX控件——可視動畫控件ActiveMovie,程序通過調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計目標(biāo),并且經(jīng)過適當(dāng)完善及美化后,將可以成為一款精簡實(shí)用的多媒體播放軟件。該播放器是基于MFC集成開發(fā)環(huán)境,利用ActiveMovie控件實(shí)現(xiàn)媒體播放的功能,除了基本的播放控制外,還具有多文件自動順序循環(huán)播放、全屏播放、靜音等實(shí)用功能。關(guān)鍵詞程序設(shè)計;ActiveMovie控件;多媒體;播放器目錄1.引言……………………….1系統(tǒng)的設(shè)計目標(biāo)和系統(tǒng)的意義………….……………..1多媒體播放器將達(dá)到的效果…………...2軟件的開發(fā)設(shè)計思想…………………...2開發(fā)工具的介紹………………………...3可行性分析和需求分析………………...32軟件的需求分析和模塊設(shè)計………….…...4軟件的需求分析………………………..4軟件的模塊設(shè)計………………………..43.數(shù)據(jù)庫設(shè)計…………………..….………….5TOC\o"1-5"\h\z3.1數(shù)據(jù)需求分析53.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計.5數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計…………………6數(shù)據(jù)庫結(jié)構(gòu)的實(shí)現(xiàn)…………………...74多媒體播放器軟件設(shè)計7模塊實(shí)現(xiàn)函數(shù)說明……………………..7主要變量聲明…………..8設(shè)計多媒體播放器界面………………..9播放器模塊設(shè)計………………………..9功能模塊設(shè)計………………………...10歌曲信息模塊的設(shè)計…………………135程序?qū)崿F(xiàn)結(jié)果……………...17程序運(yùn)行流程圖……………………...17播放器實(shí)現(xiàn)結(jié)果演示………………...18結(jié)束語……………………….23考文獻(xiàn)………………………...24附錄:源程序清單#if(dlg.DoModal()==IDOK){pSet.Open();pSet.AddNew();pSet.m_GeQupSet.m_GeShoupSet.m_ZhuanJipSet.m_ZuoCipSet.m_ZuoQupSet.Update();{pSet.Open();pSet.AddNew();pSet.m_GeQupSet.m_GeShoupSet.m_ZhuanJipSet.m_ZuoCipSet.m_ZuoQupSet.Update();pSet.Requery();}=dlg.m_Gequ;=dlg.m_Geshou;=dlg.m_Zhuanji;=dlg.m_Zuoci;=dlg.m_Zuoqu;55程序?qū)崿F(xiàn)結(jié)果5.1程序運(yùn)行流程圖該播放器程序運(yùn)行過程的流程圖如下圖5.1所示:圖17程序運(yùn)行流程圖播放器實(shí)現(xiàn)結(jié)果演示由于做程序時,把所有的文件包含在一個工程當(dāng)中,已進(jìn)行編譯生成一個可執(zhí)行文件,運(yùn)行可執(zhí)行文件“多媒體播放器.exe”即可運(yùn)行程序。(1)程序啟動時,自動進(jìn)入播放器主界面。程序是基于MFC的對話框應(yīng)用程序制作的,所以程序主界面只有一個對話框,界面簡潔清爽,程序主界面如下圖19所示:圖19播放器主界面3)單擊打開按鈕,彈出打開文件的對話框,如圖5.4所示。在文件類型下拉列表中,可以選擇打開某種格式的文件,如圖20所示,基本上現(xiàn)在網(wǎng)絡(luò)上流行的主流媒體格式都可以打開播放,選擇一個媒體文件后單擊打開。圖20打開文件對話框(4)單擊打開后返回程序主界面,在右邊的播放列表中增加了剛才打開的文件,如圖21所示:播放列表I:\0si_i'\Songs\303t+pazolitefea-I:\osui\Songs\212LOVERINTAMBUR:I:\osi_i'\Songs\956ThePillows-1圖21打開mp3文件(5)單擊“播放”按鈕,開始播放文件,在播放過程中,可通過單擊進(jìn)度條自由選擇播放進(jìn)度。(6)在播放過程中,可以通過“暫?!薄ⅰ巴V埂?、“全屏”、“+”(增大音量)、“-”(降低音量)、“X”(靜音)等按鈕達(dá)到相應(yīng)的播放控制功能。此時,還可以再次單擊“打開”按鈕繼續(xù)向播放列表中添加媒體文件,程序會按列表中的順序自動循環(huán)播放文件。已經(jīng)播放過的文件會自動被置于列表尾部,如圖22所示,Dinginthesun.mp3被置于表尾。
圖22循環(huán)播放多個文件(7)分別對mp3、wma、wmv、avi、mpg等不同音頻、視頻格式的文件進(jìn)行測試播放,均可以成功運(yùn)行,部分效果如圖23、24所示:圖23播放avi文件多媒體播放器打開關(guān)閉出
退.I:\葫蘆娃.rmvb播放列表I:\獅子王.avl融曲信息:查詢音量F1帀岡循環(huán)模式循環(huán)播放暫停停止全屏圖24播放rmvb文件8)在歌曲信息編輯框內(nèi)輸入所要查詢歌曲的名字,點(diǎn)擊查詢按鈕即可查詢歌曲的相關(guān)信息,如圖25所示:圖25查詢結(jié)果9)點(diǎn)擊添加按鈕可向數(shù)據(jù)庫添加新的歌曲信息,如圖26所示圖26添加歌曲10)單擊“關(guān)于”按鈕,會彈出關(guān)于信息,如下圖27所示6結(jié)束語我使用VC++6.0這個微軟強(qiáng)大的可視化應(yīng)用程序開發(fā)工具,在VC++環(huán)境下,利用MFC庫和ActiveMovie控件,可以較為方便的制作界面美觀的并且可以實(shí)現(xiàn)多種媒體格式正常播放的多媒體播放器程序,帶給我們美好的視聽享受。我設(shè)計的這個多媒體播放器功能比較強(qiáng)大,且使用簡單,能夠進(jìn)行日常所有的媒體播放任務(wù),體積較小,占用內(nèi)存極低。能夠高保真的播放大多數(shù)的音頻、視頻文件。程序通過調(diào)試運(yùn)行,實(shí)現(xiàn)了設(shè)計的目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以成為一款簡易的媒體播放軟件。由于時間關(guān)系,程序功能實(shí)現(xiàn)不夠完善,界面也不夠美觀等。這些都需要不斷的改進(jìn)和補(bǔ)充。具體存在的問題及不足主要有以下三點(diǎn):(1)播放器的界面還不夠美觀。由于時間有限,沒有給每個按鈕都做一張位圖圖片,如果時間足夠我想我會盡量完善它,使其兼具實(shí)用與美觀,給人更大的視覺享受。(2)播放器的穩(wěn)定性不高。有時在播放非主流格式的媒體文件時,會發(fā)生報錯現(xiàn)象,這也是由于程序兼容性不高的緣故。(3)播放視頻時的窗口大小問題。在播放畫面分辨率較高的視頻文件時,會造成畫面溢出對話框,影響觀看及程序美觀,這個問題在今后一定要解決。在完成制作的過程中,我還是受益匪淺的,首先是以前學(xué)過的理論知識終于應(yīng)用到了實(shí)踐中,具體的一些書本知識應(yīng)用到了實(shí)際生活中,學(xué)以致用,使我們對于VC++程序設(shè)計有了更加深入的理解,尤其是提高了我在實(shí)際操作中收集信息、對信息進(jìn)行價值判斷、進(jìn)行信息整理、信息加工的能力。同時,也讓我了解了在設(shè)計的過程中一些分析問題的方法技巧,清楚了自學(xué)的重要性,在以后的學(xué)習(xí)工作中當(dāng)面對新的問題時讓我知道了該如何從容的面對。我結(jié)合以前在課堂中的學(xué)習(xí)內(nèi)容和收集課外的相關(guān)資料,不斷的學(xué)習(xí)改進(jìn),當(dāng)遇到問題時努力解決,虛心請教老師和同學(xué),雖然設(shè)計過程十分艱難,但也燃起了我對專業(yè)的興趣和求索,在翻閱大量的相關(guān)書籍和瀏覽了各種應(yīng)用程序后,我總結(jié)經(jīng)驗(yàn)再結(jié)合自己的學(xué)習(xí)基礎(chǔ),終于完成了多媒體播放器軟件,盡管我設(shè)計的程序還比較簡單也不夠完善,但看到自己的努力成果卻有著莫大的滿足感,我希望在以后的學(xué)習(xí)道路中能夠繼承老師對我的期望繼續(xù)對VC++以及相關(guān)語言的學(xué)習(xí),我相信只要經(jīng)過我堅(jiān)持不懈的努力,總有一天會作出另人滿意的程序。參考文獻(xiàn)鄭阿奇.VisualC++教程[M].北京:機(jī)械工業(yè)出版社,2004JesseLiberty.C++編程實(shí)例詳解[M].北京:電子工業(yè)出版社,1999⑶東方人華等.VisualC++6.0范例入門與提高[M].北京:清華大學(xué)出版社,2003周長發(fā).VisualC++.NET多媒體編程[M].北京:電子工業(yè)出版社,2002⑸老虎工作室.舉一反三——VisualC++程序設(shè)計實(shí)戰(zhàn)訓(xùn)練[M].北京:人民郵電出版社出版,2004附錄:源程序清單//程序名稱:MediaPlayerDlg.CPP//程序功能:通過調(diào)用ActiveMovie控件中的相關(guān)函數(shù),實(shí)現(xiàn)多種播放控制功能//程序作者:趙瑞恒//最后修改日期:2007-4-9://省略程序前部的MFC類庫中自身生成的程序內(nèi)容voidCMediaPlayerDlg::OnOpen()〃實(shí)現(xiàn)打開、添加播放文件的函數(shù){charszFileFilter[]=//定義文件格式"所有支持格式(*.mp3;*.wma;*.wav;*.avi;*.mov;*.mid;*.mpeg;*.rm;*.rmvb;*.dat;*.mmm;*,rmi)|*.mp3;*.wma;*.wav;*.avi;*.mov;*.mid;*.mpeg;*.rm;*.rmvb;*.dat;*.mmm;*,rmi|""音頻文件(*.wma;*.mp3;*.mid)l*.wma;*.mp3;*.midl""視頻文件(*.wav;*.avi;*.mov;*.mpeg;*.rm;*.rmvb)|*.wav;*.avi;*.mov;*.mpeg;*.rm;*.rmvb|""Mp3文件(*.mp3)l*.mp3l""Wma文件(*.wma)l*.wmal""Video文件(*.dat)l*.datl""Wave文件(*.wav)l*.wavl""AVI文件(*.avi)|*.avi|""Real文件(*.rm;*.rmvb)l*.rm;*.rmvbl""Movie文件(*.mov)l*.movl""Media文件(*.mmm)l*.mmml""Mid文件(*.mid;*,rmi)l*.mid;*.rmil""MPEG文件(*.mpeg)l*.mpegl""所有文件(*.*)|*.*||";CFileDialogfileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);//調(diào)用fileDialog的庫函數(shù)打開文件if(fileDialog.DoModal()==IDOK)//點(diǎn)擊打開按鈕{CStringm_FileName=fileDialog.GetPathName();//選擇文件m_list.AddString(m_FileName);//加入到列表框}}voidCMediaPlayerDlg::OnPlay()//播放函數(shù){SetTimer(1,2000,NULL);//設(shè)置循環(huán)參數(shù),標(biāo)志為1,時間為2秒m_ActiveMovie.Run();//開始播放}voidCMediaPlayerDlg::OnStop()//停止播放函數(shù){KillTimer(1);//停止循環(huán)m_ActiveMovie.Stop();//停止播放}voidCMediaPlayerDlg::OnPause()//暫停播放函數(shù){m_ActiveMovie.Pause();//調(diào)用控件的暫停函數(shù)暫停播放}voidCMediaPlayerDlg::OnClose()//關(guān)閉窗口函數(shù){KillTimer(1);//停止標(biāo)志為1的循環(huán)m_ActiveMovie.CloseWindow();//關(guān)閉窗口}voidCMediaPlayerDlg::OnLower()//減小音量函數(shù){longVolume=m_ActiveMovie.GetVolume();//獲得當(dāng)前音量賦值給Volume變量m_ActiveMovie.Pause();//暫停播放m_ActiveMovie.SetVolume(Volume-300);//設(shè)置音量為原音量-300m_ActiveMovie.Run();//繼續(xù)播放}voidCMediaPlayerDlg::OnUpper()//增大音量函數(shù){longVolume=m_ActiveMovie.GetVolume();//獲得當(dāng)前音量賦值給Volume變量m_ActiveMovie.Pause();//暫停播放m_ActiveMovie.SetVolume(Volume+300);//設(shè)置音量為原音量+300m_ActiveMovie.Run();//繼續(xù)播放}voidCMediaPlayerDlg::OnRepeat()//循環(huán)控制函數(shù),實(shí)現(xiàn)對循環(huán)的控制功能{if(!isRepeat){//判斷是否正在循環(huán)SetTimer(1,2000,NULL);//設(shè)置循環(huán)的標(biāo)志為1,循環(huán)間隔為2秒isRepeat=TRUE;//將循環(huán)變量設(shè)為TURESetDlgItemText(IDC_STATIC2,模式:循環(huán)“);〃將靜態(tài)文本顯示為循環(huán)模式}else{KillTimer(1);//停止標(biāo)志為1的循環(huán)isRepeat=FALSE;//將循環(huán)變量設(shè)為FALSESetDlgItemText(IDC_STATIC2,模式:普通“);〃將靜態(tài)文本顯示為普通模式}}voidCMediaPlayerDlg::OnFulscreeen()//全屏函數(shù),實(shí)現(xiàn)全屏播放視頻的功能{m_ActiveMovie.Pause();//暫停播放m_ActiveMovie.SetFullScreenMode(true);//設(shè)置全屏播放屬性為真,即開啟全屏播放m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);//設(shè)置播放窗口大小為最大m_ActiveMovie.Run();//繼續(xù)播放}voidCMediaPlayerDlg::OnTimer(UINTnIDEvent)//實(shí)現(xiàn)循環(huán)順序播放功能的函數(shù){CStringm_filename;//定義文件變量doubleCurPos=m_ActiveMovie.GetCurrentPosition();//獲得播放位置if(CurPos==0)//判斷當(dāng)前文件是否為第一個m_list.SetCurSel(0);//選擇列表框的第一個文件m_list.GetText(0,m_filename);//獲得文件名m_ActiveMovie.SetAutoStart(1);//設(shè)置自動播放m_ActiveMovie.SetFileName(m_filename);//設(shè)置文件m_ActiveMovie.Run();//播放m_list.GetCurSel();m_list.InsertString(-1,m_filename);//插入列表框最后m_list.DeleteString(0);//刪除用過的文件}CDialog::OnTimer(nIDEvent);}voidCMediaPlayerDlg::About()//關(guān)于函數(shù),實(shí)現(xiàn)彈出關(guān)于對話框的功能{CAboutDlgaboutDlg;//定義變量aboutDlg.DoModal();//彈出關(guān)于對話框}voidCMediaPlayerDlg::OnMute()//靜音函數(shù),實(shí)現(xiàn)靜音功能{m_ActiveMovie.Pause();//暫停播放m_ActiveMovie.SetVolume(-4000);//將音量參數(shù)降低4000,達(dá)到靜音的效果m_ActiveMovie.Run();//繼續(xù)播放}voidCMediaPlayerDlg::OnCancel(){//TODO:AddextracleanuphereMessageBox("感謝您的使用!","再見");CDialog::OnCancel();}voidCMediaPlayerDlg::OnChaxun(){CSongSetcSet;
UpdateData();m_Edit1.TrimLeft();if(m_Edit1.IsEmpty()){MessageBox("要查詢的歌曲不能為空!");return;}CSongDlgdlg;cSet.m_strFilter.Format(”歌曲名稱='%s"',m_Editl);cSet.Open();if(!cSet.IsEOF())〃如果打開的記錄集有記錄=cSet.m_GeQu;=cSet.m_GeShou;=cSet.m_ZuoCi;=cSet.m_ZuoQu;=cSet.m_GeQu;=cSet.m_GeShou;=cSet.m_ZuoCi;=cSet.m_ZuoQu;dlg.m_Zhuanji=cSet.m_ZhuanJi;dlg.DoModal();UpdateData(FALSE);//自動更新表單中控件顯示的內(nèi)容}elseMessageBox("沒有查到你要找的歌曲記錄!");if(cSet.IsOpen())cSet.Close();}voidCMediaPlayerDlg::OnTianjia(){//TODO:AddyourcontrolnotificationhandlercodehereCSongDlgdlg;CSongSetpSet;if(dlg.Do
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- D打印技術(shù)在個性化教育資源的開發(fā)考核試卷
- 期刊出版論文的開源出版趨勢考核試卷
- 教育音像制品策劃與制作考核試卷
- 文具行業(yè)個性化服務(wù)考核試卷
- 工業(yè)園區(qū)電動汽車充電需求分析考核試卷
- 健康生活方式與營養(yǎng)健康考核試卷
- 個人培訓(xùn)課件大全
- 買杭州新房合同范本
- 私人店鋪?zhàn)赓U合同范本
- 2025屆吉林省吉林地區(qū)高三上學(xué)期二模英語試題及答案
- GB/T 15934-2008電器附件電線組件和互連電線組件
- GA/T 765-2020人血紅蛋白檢測金標(biāo)試劑條法
- 第2章-西周-春秋戰(zhàn)國時期的音樂-1-3節(jié)課件
- 提高白云石配比對燒結(jié)生產(chǎn)的影響
- 公安基礎(chǔ)知識考試題庫(含各題型)
- 選礦試車方案
- 小課題專題研究參考題目
- 《最好的未來》合唱曲譜
- GB∕T 8081-2018 天然生膠 技術(shù)分級橡膠(TSR)規(guī)格導(dǎo)則
- 教學(xué)課件個人理財-2
- 航空航天概論(課堂PPT)
評論
0/150
提交評論