基于MFC的多媒體播放器的實(shí)現(xiàn)_第1頁
基于MFC的多媒體播放器的實(shí)現(xiàn)_第2頁
基于MFC的多媒體播放器的實(shí)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、信息技術(shù)information technology中圖分類號 : tp311 2009 年第 3 期文獻(xiàn)標(biāo)識碼 :a文章編號 :1009 - 2552 (2009) 03 - 0080 - 03基于 mfc 的多媒體播放器的實(shí)現(xiàn)劉雅琴1 , 夏玉杰2(1. 洛陽師范學(xué)院信息技術(shù)學(xué)院 , 洛陽 471022 ; 2. 洛陽師范學(xué)院物理與電子信息學(xué)院 , 洛陽 471022)摘要 : 在vc + 6 . 0 平臺(tái)上利用 windows media player 控件實(shí)現(xiàn)了在程序中播放一段視頻和音頻的功能 。測試結(jié)果證明該方法簡單易行 , 極大縮短了程序的開發(fā)時(shí)間 。關(guān)鍵詞 : mfc ; 控件

2、; 消息 ; activexrealization of multimedia player based on mfcl iu ya2qin1 , xia yu2jie2(1. college of inf ormation technology , luoyang normal university , luoyang 471022 , china ;2. college of physics and electronic inf ormation ,luoyang normal university ,luoyang 471022 , china)abstract : this paper

3、 realizes the functions of playing a section of video and audio using windows mediaplayer control on the paltform of vc + 6 . 0 . the test results show that this method is simple and shortens development time of the program greatly.key words : mfc ;control ; message ; activexcwmpsettings 負(fù) 責(zé) 播 放 器 的

4、 基 本 設(shè) 置 等 。下 面 以windows media player10 為例列出它的常用類和方法 ,見表 1 。引言mfc ( microsoft0foundation class ) 是 用 來 編 寫windows 應(yīng)用程序的 c + 類集 ,其中封裝了大部分windows api 函數(shù)和 windows 控件 ,使用 mfc 類庫和visual c + 提供的高度可視的應(yīng)用程序開發(fā)工具 ,可使應(yīng)用程序開發(fā)變得簡單 ,提高代碼的可靠性和 可重用性1 - 2 。隨著多媒體性能的極大提升 , 程序中經(jīng)常要播放一段視頻或者一段音頻 ,如果能夠簡 單地插 入 音 頻 和 視 頻 , 將 極

5、 大 縮 短 程 序 的 開 發(fā) 時(shí)基于 mfc 的多媒體播放器的實(shí)現(xiàn)本系統(tǒng)利用 windows media player 控件 ,在vc + 平 臺(tái)上 ,實(shí)現(xiàn)播放 、暫停 、繼續(xù)和停止音頻視頻文件 。其實(shí)現(xiàn)步驟為 (下面的源碼中粗斜體字為添加的代碼) :(1) 創(chuàng)建一個(gè)項(xiàng)目文件 ,名稱為 playmedia打開 visualc + 6 . 0 ,使用 appwizard exe建立 一個(gè) mfc sdi 的 應(yīng) 用 程 序 , 項(xiàng) 目 文 件 名 稱 為 play2media 。(2) 激活添加 activex 控件對話框 ,并插入 win2dows media player 控件在項(xiàng) 目

6、創(chuàng) 建 完 成 后 , 需 要 通 過 project add toproject components and controls 菜 單 項(xiàng) 目 激 活 添 加activex 控件對話框 ,然后選擇 windows media player ,點(diǎn)擊 insert 按鈕向項(xiàng)目中插入該控件 。該版本的控 件名為“windows media player”, 相應(yīng)的控件文件變?yōu)?wmp . dll 。2間3。本 文 基 于 mfc 在 visual c + 環(huán) 境 下 利 用windows media player 控 件 實(shí) 現(xiàn) 了 音 頻 視 頻 文 件 的播放 。windows media

7、player 播放器在程序 中 簡 單 地 插 入 視 頻 和 音 頻 , 可 以 采 用windows media player 控件來完成該任務(wù)4 。windows media player 是 windows 系統(tǒng)自帶的媒 體播 放 器 , 通 常 簡 稱 wmp , 可 以 播 放 mp3 , wma ,wav 等音頻文件 ,視頻方面可以播放 avi ,mpeg21 ,安裝 dvd 解 碼 器 以 后 可 以 播 放 mpeg22 , dvd 等 。windows media player 控件將功能封裝在多個(gè)類中 ,每個(gè) 類 負(fù) 責(zé) 邏 輯 上 相 對 獨(dú) 立 的 一 組 功 能 ,

8、 cwmp2player4 類負(fù)責(zé)與 windows media player 控 件 進(jìn) 行 交 互 。cwmpcontrols 類 負(fù) 責(zé) 對 媒 體 播 放 的 控 制 ,1收稿日期 : 2008 - 07 - 14作者簡介 : 劉雅琴 (1969 - ) ,女 ,副教授 ,碩士 ,1994 年本科畢業(yè)于河 南師范大學(xué) , 2004 年 在 西 安 電 子 科 技 大 學(xué) 獲 取 碩 士 學(xué)位 ,主要研究方向?yàn)槎嗝襟w技術(shù) 。表 1windows media player10 常用的類與方法bool m - bpaused ; 記錄暫停狀態(tài)的變量operations(4) 初 始 化 和

9、釋 放 指 針 , 在 playmediaview. cpp文件添加代碼# include“wmpplayer4 . h”# include“wmpcontrols. h”# include“wmp settings. h”cplaymediaview : :cplaymediaview()todo : add construction code here m - video = new cwmpplayer4 ;初始化視頻指針m - music = new cwmpplayer4 ;初始化音頻指針m - bpaused = false ;初始化暫停變量cplaymediaview : :cp

10、laymediaview () delete m - video ;釋放視頻指針delete m - music ;釋放音頻指針(5) 使用 create 函數(shù)初始化 activex 控件響應(yīng) view 類中的 wm - create 消息 , 創(chuàng)建對 應(yīng)于視頻和音頻播放的兩個(gè)控件 。添加的代碼為 :(3) 設(shè)計(jì) cplaymediaview 類為 cplaymediaview 類添加 3 個(gè)成員 一個(gè)用 來播放多媒體文件 ,一個(gè)用來保存待播放的文件名 , 另一個(gè)記錄暫停狀態(tài) , 修改后的 cplaymediaview. h 代碼如下 :class cwmpplayer4 ; 類的聲明clas

11、s cmy12 - 3view :public cviewprotected :create from serialization onlycmy12 - 3view () ;declare - dyncreate( cmy12 - 3view)attributes public :intcplaymediaview : : oncreate( lpcreat2estruct lpcreatestruct)hcursor hcursor = : :loadcursor (null , idc - arrow) ;m - video create (afxregisterwndclass ( c

12、s- hredraw cs - vredraw cs - dblcl ks cs - parentdc ,hcursor , 0 , 0) , null , ws - visibl e ws- child ,crect (0 ,0 ,0 ,0) ,this ,0) ;m - video getsettings () . setmute ( true) ;m - music create (afxregisterwndclass ( cs- hredraw cs - vredraw cs - dblcl ks cs - parentdc ,hcursor ,0 ,0) ,null ,ws - v

13、isibl e ws - child , crect ( 0 , 0 ,0 ,0) ,this ,0) ;m - music showwindow ( sw - hide) ;return 0 ; 81cmy12 - 3doc 3getdocument () ;cwmpplayer4 3 m - video ;用來播放視頻cwmpplayer4 3 m - music ; 用來播放音頻cstring m - strvideo ; 視頻文件名cstring m - strmusic ; 音頻文件名類方法說明cwmpplayer4getcurrentmedia ( )獲得當(dāng)前的媒體對象getcon

14、trols返回一個(gè) cwmpcontrols 類的對象getcurrentplaylist ( )獲取當(dāng)前播放列表對象getsettings ( )返回一個(gè) cwmpsettings 類的對象geturl ( )獲得多媒體文件的 urlseturl ( )設(shè)置多媒體文件的 urlcwmpsettingsgetautostart ( )獲得自動(dòng)播放信息getmute ( )獲得靜音信息getplaycount ( )獲得播放的次數(shù)getrate ( )獲得播放的速度getvolume ( )獲得音量setautostart ( )設(shè)置自動(dòng)播放setplay ( )設(shè)置播放setrate ( )設(shè)

15、置播放速度setvolume ( )設(shè)置音量cwmpcontrolsgetcurrentposition ( )當(dāng)前進(jìn)度next ( )下一曲pause ( )暫停play ( )播放previous ( )上一曲stop ( )停止fastforward ( )快進(jìn)fastreverse ( )快退(6) 菜單設(shè)計(jì)為了操作播放過程 ,還要添加“操作”及相關(guān)菜 單項(xiàng)5 ,如表 2 所示 。表 2 菜單項(xiàng)及其屬性m - video getcontrols () . play () ;elsem - bpaused = true ;m - video getcontrols () . pause

16、() ;停止視頻void cplaymediaview : :onoperstopv ()m - video getcontrols () . stop () ; (7) 為播放視頻的控件設(shè)置窗口尺寸 有了以上代碼 ,程序還不能夠完全正常運(yùn)行 ,需要為播放視頻的控件設(shè)置窗口尺寸 。為此需要響應(yīng)view 的 wm - size 消息 ,該消息響應(yīng)函數(shù)如下 :void cmy12 - 3view : :onsize (uint ntype , int cx , int cy)cview : :onsize ( ntype , cx , cy) ;todo : add your message ha

17、ndler code herecview : :onsize ( ntype , cx , cy) ; crect rect ;getclientrect ( rect) ;m - p player movewindow ( rect) ;(8) 編譯 、連接運(yùn)行即可實(shí)現(xiàn)要求的功能 ,播放 器運(yùn)行界面略 。 id caption separator 操作 ( &o)打開視頻 播放視頻 暫停繼續(xù) 停止視頻id - oper - openvid - oper - playvid - oper - pausevid - oper - stopvid - oper - opena打開音頻播放音

18、頻 暫停繼續(xù)音頻 停止音頻id - oper - playaid - oper - pauseaid - oper - stopa然后通 過 class wizard 為 cplaymediaview 類 添加響應(yīng)的菜單響應(yīng) 。下面主要說一下視頻播放各消 息響應(yīng)函數(shù) (音頻播放與此大同小異) 。打開視頻代碼 :void cplaymediaview : :onoperoperv ()todo : add your command handler code here static char based - code szfilter =“video files ( 3 . avi ; 3 . m

19、pg ; 3 . mpeg) 3 . avi ; 3 . mpg ; 3 . mpeg ”;cfiledialog filedlg ( true , null , null , ofn - hidereadonl y ,szfilter) ;if (filedlg. domodal () = = idok)m - strvideo = filedlg. getpathname () ;播放視頻void cplaymediaview : :onoperplayv ()todo : add your command handler code here m - video getcontrols () . stop () ;m - video getsettings ( ) . setautostart( true) ;m - video seturl (m - strvideo) ;暫停

溫馨提示

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

評論

0/150

提交評論