石冬琴
(江南機(jī)電設(shè)計(jì)研究所,貴州貴陽(yáng),550000)
多媒體播放軟件現(xiàn)在幾乎成為每一臺(tái)家用計(jì)算機(jī)的裝機(jī)必備軟件,比較流行的有快播、暴風(fēng)影音以及百度影音等等,通過(guò)這些軟件能夠播放RM、RMVB、MP3、MPEG、DAT等多種格式的多媒體文件。這些商業(yè)軟件在功能上已經(jīng)做的相當(dāng)完備,也符合大多數(shù)普通消費(fèi)者的的胃口,但很多人電腦里總是安裝了多種播放器,因?yàn)椴煌牟シ牌饔胁煌奶攸c(diǎn),并不是每個(gè)人都執(zhí)著于用某一款播放器,因此設(shè)計(jì)一款符合自己使用習(xí)慣的播放器是很可行的。
使用VC++6.0強(qiáng)大的MFC、AppWizard、Class Wizard和其中的多種控件可以很方便地建立各種應(yīng)用軟件。同時(shí)想要實(shí)現(xiàn)更高級(jí)更復(fù)雜的功能,也可以借助ActiveX控件資源,用這些現(xiàn)有的控件資源,可以省去自己編程的復(fù)雜過(guò)程,從而實(shí)現(xiàn)更高級(jí)的功能。本次課程設(shè)計(jì)要使用VC++6.0自帶的一個(gè)ActiveX控件——Windows Media Player控件,建立自己的多媒體播放器。
此多媒體播放器具有打開(kāi)文件、播放、暫停、保存列表、清空列表、刪除當(dāng)前、退出、靜音等基本播放功能,并且可以播放:*.mp3,*.wma,*.rmvb,*avi等格式的音頻視頻文件。同時(shí)還具有自制的可隱藏的播放列表,并且可以在播放模式中選擇順序播放、隨機(jī)播放、單曲循環(huán)三種方式。同時(shí),我也添加了保存列表的功能,當(dāng)下一次打開(kāi)時(shí)能保留上一次保存的播放列表,當(dāng)然也添加了清空列表和刪除當(dāng)前的功能,更具人性化。
根據(jù)各個(gè)按鈕控件功能以及Windows Media Player控件的特點(diǎn),首先要在頭文件中將CWMPControl,CWMPSettings等類(lèi)的對(duì)象的綁定以及定義,在后面的程序中需要調(diào)用這些類(lèi)的成員函數(shù)。
對(duì)于打開(kāi)文件按鈕,需要調(diào)用通用文件對(duì)話(huà)框類(lèi),并利用listbox中的AddString函數(shù)把選中的文件添加到播放列表中,在MFC學(xué)習(xí)中有涉及。對(duì)于一些基本的功能的實(shí)現(xiàn),如播放、暫停、全屏、音量增大、音量減小、靜音、快進(jìn)、快退等功能,主要調(diào)用CWMPControl和CWMPPlayer類(lèi)中的成員函數(shù)來(lái)進(jìn)行實(shí)現(xiàn)。
圖1 系統(tǒng)流程圖
對(duì)于播放列表,這次設(shè)計(jì)使用了SetWindowPos函數(shù)來(lái)改變一個(gè)子窗口彈出的尺寸和方向,并一些相關(guān)的函數(shù)實(shí)現(xiàn)了保存列表、刪除列表、刪除當(dāng)前的功能。對(duì)應(yīng)播放列表,我還添加了播放模式選擇的功能,提供了順序播放、隨即播放、單曲循環(huán)三種選擇。這當(dāng)中運(yùn)用的ontimer()函數(shù)和settimer()函數(shù)來(lái)控制播放模式。
首先,打開(kāi)Microsoft Visual Studio6.0軟件,新建一個(gè)工程如圖2所示,以HuangJianfei為工程名,然后將此工程定義為基于對(duì)話(huà)框的MFC應(yīng)用程序如圖3所示,點(diǎn)擊完成就成功建立了一個(gè)基于對(duì)話(huà)框的工程。
圖3 基于對(duì)話(huà)框的MFC程序
圖2 工程建立圖
在建立好工程之后,首先是Windows Media Player控件的添加:建立空白對(duì)話(huà)框之后,在對(duì)話(huà)框的空白處單擊鼠標(biāo)右鍵,選擇Insert ActiveX Control菜單項(xiàng)。選擇Windows Media Player控件,如圖4所示。加入控件后,此時(shí)該控件與該對(duì)話(huà)框并沒(méi)有聯(lián)系
,需要對(duì)其進(jìn)行變量的關(guān)聯(lián)。
開(kāi)發(fā)制作這一播放器具有很現(xiàn)實(shí)的意義,與其它多媒體播放器相比較,這一多媒體播放器具有功能較為強(qiáng)大、占用空間小、占用系統(tǒng)資源少的特點(diǎn),它與現(xiàn)有多媒體資源應(yīng)用狀況緊密結(jié)合,既具有很強(qiáng)的直觀感,又不失一般性。