VC下自制多媒體播放器畢業(yè)設(shè)計(jì)(_第1頁(yè)
VC下自制多媒體播放器畢業(yè)設(shè)計(jì)(_第2頁(yè)
VC下自制多媒體播放器畢業(yè)設(shè)計(jì)(_第3頁(yè)
VC下自制多媒體播放器畢業(yè)設(shè)計(jì)(_第4頁(yè)
VC下自制多媒體播放器畢業(yè)設(shè)計(jì)(_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、自制多媒體播放器使用VC+6.0強(qiáng)大的AppWizard、ClassWizard和其中的各種控件可以方便地建立各種應(yīng)用程序。但是想要實(shí)現(xiàn)更高級(jí)更復(fù)雜的功能,就要借助豐富的ActiveX控件資源了。這里就要使用VC+6.0自帶的一個(gè)ActiveX控件ActiveMovieControl Object,來(lái)建立自己的多媒體播放器。此多媒體具有一般的播放功能,能播放:*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,還有Repeat功能。具體步驟:1 打開(kāi)VC6.0,在Projects下選擇MFC AppWizard(exe),并取名MediaPlayer,然后建立基于對(duì)話

2、框的應(yīng)用程序。2 打開(kāi)Resource View,選擇其中的對(duì)話框,打開(kāi)其中的主對(duì)話框,去掉對(duì)話框上的“確定”按鈕,保留“取消”,將Caption改為“退出”。然后再在上面加上九個(gè)按鈕,ID和Caption分別為IDC_OPEN,打開(kāi);IDC_PLAY,播放;IDC_PAUSE,暫停;IDC_STOP,停止;IDC_CLOSE,關(guān)閉;IDC_LOWER,;IDC_FULLSCREEN,全屏;IDC_REPEAT,重復(fù);再加入兩個(gè)靜態(tài)文本控件,分別為:IDC_STATIC,音量;IDC_STATIC2,狀態(tài):正常。3 點(diǎn)擊“開(kāi)始”菜單,運(yùn)行 regsvr32 msdxm.ocx,出現(xiàn)“注冊(cè)成功”

3、的對(duì)話框后打開(kāi)Projects-Add to Project-Components and Controls-Registered ActiveX Controls對(duì)話框,選擇其中的ActiveMovieControl Object, Insert,OK之后,會(huì)發(fā)現(xiàn)控件面板上多了一項(xiàng)ActiveMovieControl Object,將它選中,直接放在對(duì)話框上。按Ctrl+W打開(kāi)ClassWizard為它添加變量m_ActiveMovie。各控件的布局如圖:4為程序添加消息處理函數(shù)。打開(kāi)ClassWizard,為各個(gè)按鈕加入消息處理函數(shù)。在MediaPlayerDlg.cpp文件里為各消息處理

4、函數(shù)添加代碼,各代碼如下:void CMediaPlayerDlg:OnClose() m_ActiveMovie.CloseWindow();/關(guān)閉窗口void CMediaPlayerDlg:OnOpen()char szFileFilter=Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Media File(*.mmm)|*.mmm|Mid File(*.mid;

5、*,rmi)|*.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File(*.*)|*.*|;/文件類型過(guò)濾CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if(dlg.DoModal()=IDOK)CString PathName=dlg.GetPathName();PathName.MakeUpper();m_ActiveMovie.SetFileName(PathName);void CMediaPlayerDlg:OnPlay()m_ActiveMovie.Run();/播放文件

6、SetTimer(0,20,NULL);/設(shè)置定時(shí)器void CMediaPlayerDlg:OnStop()m_ActiveMovie.Stop();/停止播放文件KillTimer(0);/關(guān)掉定時(shí)器void CMediaPlayerDlg:OnPause()m_ActiveMovie.Pause();/暫停播放void CMediaPlayerDlg:OnUpper()/增加音量long Volume=m_ActiveMovie.GetVolume();m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(Volume+100);m_ActiveMo

7、vie.Run();void CMediaPlayerDlg:OnLower()/減少音量long Volume=m_ActiveMovie.GetVolume();m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(Volume-100);m_ActiveMovie.Run();void CMediaPlayerDlg:OnRepeat()/重復(fù)模式if(!isRepeat)isRepeat=TRUE;SetDlgItemText(IDC_STATIC2,狀態(tài):重復(fù));elseisRepeat=FALSE;SetDlgItemText(IDC_STAT

8、IC2,狀態(tài):正常);void CMediaPlayerDlg:OnFulscreeen()/全屏播放m_ActiveMovie.Pause();m_ActiveMovie.SetFullScreenMode(true);m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);m_ActiveMovie.Run();這里需要注意的是,下面的函數(shù)OnTimer()需通過(guò)ClassWizard(Ctrl+W)來(lái)添加,不能直接復(fù)制:void CMediaPlayerDlg:OnTimer(UINT nIDEvent)double CurrentPos=m

9、_ActiveMovie.GetCurrentPosition();if(CurrentPos=0&isRepeat)/如果當(dāng)前是文件的起始位置而且為重復(fù)播放狀態(tài)m_ActiveMovie.Run();CDialog:OnTimer(nIDEvent);5 為使播放器具有重復(fù)播放功能,需在頭文件MediaPlayerDlg.h 加入控制變量BOOL isRepeat;類型可為Private。同時(shí)修改OnInitDialog()函數(shù):BOOL CMediaPlayerDlg:OnInitDialog()CDialog:OnInitDialog();isRepeat=FALSE;6 這樣此播放器就

10、具有一般的媒體播放功能了,但為了有更好的用戶界面,我們給播放器加上皮膚。我們使用現(xiàn)在比較流行的Skin+ for VC+6.0作為皮膚控件給我們的播放器加上漂亮的皮膚。(1)復(fù)制 SkinPPWTL.h、SkinPPWTL.dll、SkinPPWTL.lib 以及 Chinablue.ssk 皮膚到程序源碼下。(2)在 MFC 下:Project-Setting-Link-Object/library modules 處添加 SkinPPWTL.lib (左側(cè)設(shè)置要選擇“所有配置”)。(3)點(diǎn)擊菜單:Project-Add to Project-File 打開(kāi) SkinPPWTL.h 文件。(

11、4)在 StdAfx.h 中添加頭文件:#include SkinPPWTL.h(5)在MediaPlayerDlg.cpp類中的OnInitDialog()中加上skinppLoadSkin(_T(Chinablue.ssk);7為了使界面更加美觀,還要設(shè)置MediaPlayer對(duì)話框的樣式,取消“系統(tǒng)菜單”的顯示:8 全部完成,現(xiàn)在編譯、連接并運(yùn)行看看效果,打開(kāi)個(gè)mp3文件試聽(tīng)一下,效果不錯(cuò)!9 總結(jié):這個(gè)播放器主要使用了ActiveX控件ActiveMovieControlObject作為播放核心,界面簡(jiǎn)單的采用了若干按鈕來(lái)控制播放。再添加該控件時(shí)發(fā)現(xiàn)控件本身帶有視頻窗口,加大控件大小后

12、就可以直接帶有視頻播放窗口了。進(jìn)過(guò)測(cè)試完全可以播放更多的視頻,于是修改OnOpen函數(shù):void CAbcDlg:OnOpen() char szFileFilter=所有支持類型|*.mp3;*.wma;*.dat;*.wav;*.avi;*.mov;*.rmvb;*.mmm;*.mid;*.rmi;*.mpeg|Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Rmvb File(*.rmvb)|*.rmvb|Media File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論