石冬琴
(江南機電設計研究所,貴州貴陽,550000)
多媒體播放軟件現在幾乎成為每一臺家用計算機的裝機必備軟件,比較流行的有快播、暴風影音以及百度影音等等,通過這些軟件能夠播放RM、RMVB、MP3、MPEG、DAT等多種格式的多媒體文件。這些商業軟件在功能上已經做的相當完備,也符合大多數普通消費者的的胃口,但很多人電腦里總是安裝了多種播放器,因為不同的播放器有不同的特點,并不是每個人都執著于用某一款播放器,因此設計一款符合自己使用習慣的播放器是很可行的。
使用VC++6.0強大的MFC、AppWizard、Class Wizard和其中的多種控件可以很方便地建立各種應用軟件。同時想要實現更高級更復雜的功能,也可以借助ActiveX控件資源,用這些現有的控件資源,可以省去自己編程的復雜過程,從而實現更高級的功能。本次課程設計要使用VC++6.0自帶的一個ActiveX控件——Windows Media Player控件,建立自己的多媒體播放器。
此多媒體播放器具有打開文件、播放、暫停、保存列表、清空列表、刪除當前、退出、靜音等基本播放功能,并且可以播放:*.mp3,*.wma,*.rmvb,*avi等格式的音頻視頻文件。同時還具有自制的可隱藏的播放列表,并且可以在播放模式中選擇順序播放、隨機播放、單曲循環三種方式。同時,我也添加了保存列表的功能,當下一次打開時能保留上一次保存的播放列表,當然也添加了清空列表和刪除當前的功能,更具人性化。
根據各個按鈕控件功能以及Windows Media Player控件的特點,首先要在頭文件中將CWMPControl,CWMPSettings等類的對象的綁定以及定義,在后面的程序中需要調用這些類的成員函數。
對于打開文件按鈕,需要調用通用文件對話框類,并利用listbox中的AddString函數把選中的文件添加到播放列表中,在MFC學習中有涉及。對于一些基本的功能的實現,如播放、暫停、全屏、音量增大、音量減小、靜音、快進、快退等功能,主要調用CWMPControl和CWMPPlayer類中的成員函數來進行實現。

圖1 系統流程圖
對于播放列表,這次設計使用了SetWindowPos函數來改變一個子窗口彈出的尺寸和方向,并一些相關的函數實現了保存列表、刪除列表、刪除當前的功能。對應播放列表,我還添加了播放模式選擇的功能,提供了順序播放、隨即播放、單曲循環三種選擇。這當中運用的ontimer()函數和settimer()函數來控制播放模式。
首先,打開Microsoft Visual Studio6.0軟件,新建一個工程如圖2所示,以HuangJianfei為工程名,然后將此工程定義為基于對話框的MFC應用程序如圖3所示,點擊完成就成功建立了一個基于對話框的工程。

圖3 基于對話框的MFC程序

圖2 工程建立圖
在建立好工程之后,首先是Windows Media Player控件的添加:建立空白對話框之后,在對話框的空白處單擊鼠標右鍵,選擇Insert ActiveX Control菜單項。選擇Windows Media Player控件,如圖4所示。加入控件后,此時該控件與該對話框并沒有聯系
,需要對其進行變量的關聯。
開發制作這一播放器具有很現實的意義,與其它多媒體播放器相比較,這一多媒體播放器具有功能較為強大、占用空間小、占用系統資源少的特點,它與現有多媒體資源應用狀況緊密結合,既具有很強的直觀感,又不失一般性。