用MFC寫簡單的音樂播放器_第1頁
用MFC寫簡單的音樂播放器_第2頁
用MFC寫簡單的音樂播放器_第3頁
用MFC寫簡單的音樂播放器_第4頁
用MFC寫簡單的音樂播放器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 MFCClassWizard?XDescription:圖12為ActiveMovieControl控件設(shè)置變量m_ActiveMovie6、為程序添加消息處理函數(shù)。打開ClassWizard,為各個按鈕加入消息處理函數(shù)。在MediaPlayerDlg.cpp文件里為各消息處理函數(shù)添加代碼,部分代碼如下:打開文件:voidCMediaPlayerDlg:OnOpen()/TODO:Addyourcontrolnotificationhandlercodeherem_listCtrl.SetFocus();CStringstr;TCHARszFilter口=_T(Mp3File(*.mp3)|

2、*.mp3WmaFile(*.wma)|*.wma|VideoFile(*.dat)|*.dat|WaveFile(*.wav)|*.wav|AVIFile(*.avi)|*.avi|MovieFile(*.mov)|*.mov|MediaFile(*.mmm)|*.mmm|MidFile(*.mid;*,rmi)|*.mid;*.rmi|MPEGFile(*.mpeg)|*.mpeg|AllFile(*.*)|*.*|);CFileDialogfileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,this);

3、CStringstrFilePath;if(IDOK=fileDlg.DoModal()strFilePath=fileDlg.GetPathName();strFilePath.MakeUpper();m_player.SetUrl(strFilePath);m_media=static_cast(m_player.newMedia(strFilePath);m_list.appendItem(m_media);m_listCtrl.InsertItem(count,m_media.GetName();m_listCtrl.SetItemText(count,1,_T(m_media.get

4、ItemInfo(FileType);m_listCtrl.SetItemText(count,2,_T(m_media.GetDurationString();m_listCtrl.SetItemText(count,3,_T(strFilePath);m_listCtrl.SetItemText(count+,4,_T(m_media.getItemInfo(Duration);POSITIONpos;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(p

5、os);m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_player.SetUrl(m_listCtrl.GetItemText(0,3);m_listCtrl.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);播放:voidCMediaPlayerDlg:OnPlay()/TODO:Addyourcontrolnotificationhandlercodehereif(m_list.GetCount()=0)MessageBox(列表無文件!,Warning,

6、MB_OK);KillTimer(0);m_control.play();if(m_control.GetCurrentPosition()=0)m_control.SetCurrentPosition(0.01);SetTimer(0,20,NULL);暫停:voidCMediaPlayerDlg:OnPause()/TODO:Addyourcontrolnotificationhandlercodeherem_control.pause();停止:voidCMediaPlayerDlg:OnStop()/TODO:Addyourcontrolnotificationhandlercodeh

7、ereKillTimer(0);m_control.stop();全屏:voidCMediaPlayerDlg:OnFullscreen()/TODO:Addyourcontrolnotificationhandlercodehereif(!m_player.GetFullScreen()m_control.pause();人*乂65528680*(請雙擊退出全屏模式!);m_player.SetFullScreen(true);m_control.play();退出:voidCMediaPlayerDlg:OnExit()/TODO:Addyourcontrolnotificationhan

8、dlercodehereSendMessage(WM_CLOSE);上一曲:voidCMediaPlayerDlg:OnLast()/TODO:Addyourcontrolnotificationhandlercodeherem_listCtrl.SetFocus();POSITIONpos;CStringstrName;UINTflag1=LVIS_SELECTED|LVIS_FOCUSED;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(pos);if

9、(IndexInFieldList=-1)AfxMessageBox(列表內(nèi)沒有被選中項!);return;if(IndexInFieldList=0)AfxMessageBox(已經(jīng)至1了列表頭部!);m_listCtrl.SetItemState(IndexInFieldList,flag1,flag1);return;m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_listCtrl.SetItemState(IndexInFieldList-1,flag1,flag1);strName=m_l

10、istCtrl.GetItemText(IndexInFieldList-1,3);KillTimer(0);m_control.stop();m_player.SetUrl(strName);m_control.SetCurrentPosition(0.01);m_control.play();SetTimer(0,20,NULL);下一曲:voidCMediaPlayerDlg:OnNext()/TODO:Addyourcontrolnotificationhandlercodeherem_listCtrl.SetFocus();POSITIONpos;CStringstrName;UIN

11、Tflag1=LVIS_SELECTED|LVIS_FOCUSED;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(pos);if(IndexInFieldList=-1)AfxMessageBox(列表內(nèi)沒有被選中項!);return;if(IndexInFieldList=m_listCtrl.GetItemCount()-1)AfxMessageBox(已經(jīng)至1了列表末尾!);m_listCtrl.SetItemState(IndexInFieldL

12、ist,flag1,flag1);return;m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_listCtrl.SetItemState(IndexInFieldList+1,flag1,flag1);strName=m_listCtrl.GetItemText(IndexInFieldList+1,3);KillTimer(0);m_control.stop();m_player.SetUrl(strName);m_control.SetCurrentPosition(0.01);m_contr

13、ol.play();SetTimer(0,20,NULL);快進:voidCMediaPlayerDlg:OnForward()/TODO:Addyourcontrolnotificationhandlercodeheredoublet=m_control.GetCurrentPosition();m_control.SetCurrentPosition(t=t+10);快退:voidCMediaPlayerDlg:OnReverse()/TODO:Addyourcontrolnotificationhandlercodeheredoublet=m_control.GetCurrentPosi

14、tion();m_control.SetCurrentPosition(t=t-10);靜音:voidCMediaPlayerDlg:OnSilence()/TODO:Addyourcontrolnotificationhandlercodehereif(!m_setting.GetMute()m_setting.SetMute(true);elsem_setting.SetMute(false);音量加減:voidCMediaPlayerDlg:OnAdd()/TODO:Addyourcontrolnotificationhandlercodeherem_setting.SetVolume(

15、m_setting.GetVolume()+10);m_VOLUME.SetPos(m_setting.GetVolume();voidCMediaPlayerDlg:OnSub()/TODO:AddyourcontrolnotificationhandlercodehereintVolume=m_setting.GetVolume();m_setting.SetVolume(Volume=Volume-10);m_VOLUME.SetPos(m_setting.GetVolume();列表:voidCMediaPlayerDlg:OnClickList1(NMHDR*pNMHDR,LRESU

16、LT*pResult)/TODO:AddyourcontrolnotificationhandlercodehereLPNMITEMACTIVATEpNMItemActivatereinterpret_cast(pNMHDR);/TODO:AddyourcontrolnotificationhandlercodehereNMLISTVIEW*pNMListView=(NMLISTVIEW*)pNMHDR;*pResult=0;CStringstrName;if(-1!=pNMListView-iItem)strName=m_listCtrl.GetItemText(pNMListView-iI

17、tem,3);KillTimer(0);m_control.stop();m_player.SetUrl(strName);m_control.SetCurrentPosition(0.01);m_control.play();SetTimer(0,20,NULL);另外函數(shù)OnTimer()是通過ClassWizard(Ctrl+W)來添加的:圖13voidCVedioPlayerDlg:OnTimer(UINTnIDEvent)doubleCurrentPos=m_ActiveMovie.GetCurrentPosition();if(CurrentPos=0&isRepeat)/汝口果當(dāng)

18、前是文件的起始位置而且為重復(fù)播放狀態(tài)m_ActiveMovie.Run();CDialog:OnTimer(nlDEvent);實驗展示:00:1104:29MediaPlayer班欣模式MWSsi順序推放00:1104:29MediaPlayer班欣模式MWSsi順序推放rfgwgiik上一a|下一曲上迸|快也|播諭控制I打開文件I典I曾唯I停止I.全屏一I退出I圻Im第-I-,d-dr岸音格式時點七次V3CM;騫fiAli如果.gzl;21DS叫04:mm3333nrKFmMP心得體會:通過這次多媒體播放器的設(shè)計,讓我切身的感受到了計算機技術(shù)在多媒體中的應(yīng)用是多么的廣泛。同時,這也是理論知識的第一次實現(xiàn),學(xué)習(xí)了兩年的計算機知識,第一次真正的實現(xiàn)了一個小程序。雖然這個播放器可用性實在不佳,盡管能實現(xiàn)一些基本功能,但是在程序結(jié)構(gòu)上還有很大方面的優(yōu)化空間,但這次利用VisualC+編寫出的多媒體播放器讓我很有成就感,雖然很多都是老師一步步教我們怎么去做的,三十當(dāng)真正的把程序編寫出來的時候就別提有多興奮了。在工作和生活中多媒體技術(shù)和我們息息相關(guān),在計算機技術(shù)不斷普及的今天,對于我們來說,掌握多媒體技術(shù)是非常重要的,這也是我們以后要

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論