任靖娟
多媒體播放器程序的設(shè)計與實現(xiàn)
任靖娟
主要是使用VS2013的開發(fā)環(huán)境,利用軟件工程原理,采用面向?qū)ο蟮木幊谭椒ǎ_發(fā)了一款簡單的多媒體播放器軟件。其開發(fā)主要包括前臺窗體的設(shè)計和后臺源碼的實現(xiàn)兩個方面,實現(xiàn)了利用計算機(jī)進(jìn)行多媒體音視頻的播放與控制。
VS2013;多媒體播放器;音視頻播放與控制
在當(dāng)今信息社會,以多媒體為代表的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展和應(yīng)用對人類社會產(chǎn)生的影響和作用愈來愈明顯,愈來愈重要,多媒體技術(shù)的應(yīng)用范圍很廣,幾乎遍布各行各業(yè)以及人們生活的各個角落。由于多媒體技術(shù)具有直觀、信息量大、易于接受和傳播迅速等顯著的特點,因此多媒體領(lǐng)域的拓展十分迅速。近年來,隨著國際互聯(lián)網(wǎng)的興起,多媒體技術(shù)也滲透到互聯(lián)網(wǎng)上,并隨著互聯(lián)網(wǎng)的發(fā)展和延伸,不斷的成熟和進(jìn)步[1]。
多媒體能夠取得迅速發(fā)展,與視頻、音頻等媒體壓縮/解壓縮、多媒體專用芯片,多媒體輸入/輸出、多媒體存儲設(shè)備、多媒體系統(tǒng)軟件等諸多技術(shù)密不可分[2]。多媒體技術(shù)的網(wǎng)絡(luò)化發(fā)展趨勢,技術(shù)的創(chuàng)新和發(fā)展將使諸如服務(wù)器、路由器、轉(zhuǎn)換器等網(wǎng)絡(luò)設(shè)備的性能越來越高,包括用戶端CPU、內(nèi)存、圖形卡等在內(nèi)的硬件能力空前擴(kuò)展,從目前的發(fā)展趨勢看可以把這種芯片分成兩類:一類是以多媒體和通訊功能為主。融合CPU芯片原有的計算功能,它的設(shè)計目標(biāo)是用在多媒體專用設(shè)備,家電及寬帶通訊設(shè)備,可以取代這些設(shè)備中的CPU及大量ASIC和其它芯片。另一類是以通用CPU計算功能為主,融合多媒體和通信功能,它們的設(shè)計目標(biāo)是與現(xiàn)有的計算機(jī)系列兼容,同時具有多媒體和通信功能,主要用在多媒體計算機(jī)中[3]。
隨著多媒體技術(shù)的發(fā)展,人們對音質(zhì)、畫面的要求也越來越高,從而隨之出現(xiàn)了一系列不同格式的音視頻文件,為了使這些音視頻文件得播放效果進(jìn)一步提高,多媒體播放器的設(shè)計與實現(xiàn)也成為人們關(guān)注的一大問題[4]。
本文就是通過在VS2013開發(fā)平臺上開發(fā)一個簡單的音/視頻播放器的過程,了解多媒體與多媒體技術(shù)及其在播放器中的應(yīng)用,掌握多媒體技術(shù)開發(fā)相關(guān)技術(shù)及多媒體文件的訪問與傳播,同時利用軟件工程的相關(guān)理論知識,了解軟件開發(fā)的方法與步驟。多媒體技術(shù)已經(jīng)成為當(dāng)今比較熱門的研究課題,特別是伴隨著多媒體技術(shù)的網(wǎng)絡(luò)化,使得多媒體技術(shù)的發(fā)展前景無限廣闊。
1.1系統(tǒng)的開發(fā)平臺
眾所周知,VS2013是功能非常強(qiáng)大的多媒體開發(fā)工具,它有豐富的函數(shù)和方法處理各種各樣的多媒體信息,能夠很靈活的操作圖形、聲音、動畫、影像等多媒體素材。但有時我們使用Visual Studio2013開發(fā)非多媒體程序,并不需要在應(yīng)用程序中大量使用聲音,而只是在特定的場合出現(xiàn)。如Windows的警告聲。這就要求程序員在恰當(dāng)?shù)沫h(huán)境中恰當(dāng)?shù)厥褂寐曇粑募炔皇S在聲音方面的特長,又能為應(yīng)用程序增加吸引人的效果。
VS2013對動畫畫面的處理也非常細(xì)致,可以按照個人喜好對界面進(jìn)行設(shè)計制作,聲音與畫面的完美結(jié)合,從而使開發(fā)設(shè)計出的播放器在支持不同格式音視頻文件的同時,更加的賞心悅目[5]。
1.2系統(tǒng)的實現(xiàn)內(nèi)容
掌握開發(fā)程序的語言和多媒體編程的基本原理,在Visual Studio2013平臺環(huán)境下編程實現(xiàn)一個可以支持mp3、wma、wmv、avi、mpg等多種音視頻格式的多媒體播放器,其功能包括媒體播放、音量調(diào)節(jié)、播放進(jìn)度選擇、暫停、停止以及歌曲信息的查詢與添加等。
2.1系統(tǒng)設(shè)計
要開發(fā)一個軟件,首先必須搞清楚這個軟件有什么功能,需要用到哪些組件、輸出的內(nèi)容和方法等,畫出結(jié)構(gòu)流程圖,此播放器的結(jié)構(gòu)圖與功能圖如圖1和圖2所示:

圖1 播放器結(jié)構(gòu)圖

圖2 播放器功能圖
Visual Studio 2013提供多種強(qiáng)大的工具和服務(wù),幫助您創(chuàng)造新式應(yīng)用程序或?qū)F(xiàn)有應(yīng)用程序轉(zhuǎn)變?yōu)樾率綉?yīng)用程序,令用戶在多種屏幕和設(shè)備上享受到最佳的體驗,同時仍與所需的服務(wù)和數(shù)據(jù)保持聯(lián)系。
該播放器程序運(yùn)行過程的流程圖如圖3所示:

圖3 程序流程圖
多媒體播放器的功能主要分三大模塊:文件加載、播放、關(guān)閉。文件加載是由打開和添加兩個子功能模塊組成;播放包括自定義播放順序、連續(xù)播放多個文件兩個子功能模塊。自定義播放順序則是由上一首、下一首、暫停/播放、停止、播放列表等子功能模塊組成;關(guān)閉包括循環(huán)播放和播放一次就關(guān)閉兩個子模塊。
(1)使用OpenFileDialog控件實現(xiàn)文件選擇。
選擇打開的文件,代碼如下:
Private void browse_click(object sebder EvebtArgs e)
{
OpenFileDialog ofd=new OpenFileDialog (); //new一個方法
Ofd Initial Directory=Environment. Get Folder Path_r(Environment,Special Folder My Documents):
//定義打開的默認(rèn)文件夾
設(shè)置
Ofd.ShowDialog(); //顯示打開文件的窗口
fileName=Ofd FileName //獲得選擇的文件路徑
textBox1.Text=fileName;
extendedName=Path.GetExtension_r(fileName); //獲得文件擴(kuò)展名
fileName1=Path.GetFileName_r(fileName); //獲得文件名
(2)使用Listbox存儲播放列表。
(3)使用axwindowsmediaplayer控件,實現(xiàn)視頻播放、暫停、停止、音量調(diào)節(jié)。
播放文件,代碼如下:
void axwindowsmediaplayer:Run()
{
InvokeHelp
er(0x60020001,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
暫停播放的函數(shù),代碼如下:
void axwindowsmediaplayer:Pause(){
InvokeHelp
er(0x60020002,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
停止播放的函數(shù),代碼如下:
void axwindowsmediaplayer:Stop()
{
InvokeHelp
er(0x60020003,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
(4) 設(shè)置音量的函數(shù),代碼如下:
void axwindowsmediaplayer:SetVolume(long nNewValue)
{
static BYTE parms[]=VTS_I4;
InvokeHelper(0x13, DISPATCH_PROPERTYPUT,VT_EMPTY, NULL, parms, nNewValue);
}
(4)為了循環(huán)播放,我們利用定時器來工作,采用OnTimer()函數(shù)來激活定時器,代碼如下:
void CMy1Dlg:OnTimer(UINT nIDEvent)
{
CString m_filename; //定義文件變量
double Cur-Pos=m_ActiveMovie.GetCurrentPosition(); //獲得播放位置
if(CurPos==0)
{
m_list.SetCurSel(0); //選擇列表框的第一個文件
m_list.GetText(0,m_filename);
m_ActiveMovie.SetAutoStart(1); //設(shè)置自動播放
m_ActiveMovie.SetFileName(m_filename);
m_ActiveMovie.Run(); //播放
m_list.GetCurSel(); //獲得播放文件
m_list.InsertString(-1,m_filename); //插入列表框最后
m_list.DeleteString(0); //刪除用過的文件
}
CDialog:OnTimer(nIDEvent);
}
(5) 為退出按鈕IDCANCEL添加消息映射OnCancel,并添加下列代碼:
void CMediaPlayerDlg:OnCancel()
{
// TODO: Add extra cleanup here
MessageBox("感謝您的使用!","再見");
CDialog:OnCancel();
}
在Visual Studio2013集成開發(fā)環(huán)境中,用鼠標(biāo)點擊菜單調(diào)試。然后單擊“啟動調(diào)試”按鈕,或者直接按Ctrl+F5進(jìn)行項目編譯,最后在本系統(tǒng)的Debug目錄下會生成可執(zhí)行文件多媒體播放器.exe。
3.1系統(tǒng)的運(yùn)行
這款多媒體播放器運(yùn)行后,程序主界面如圖4所示:

圖4 程序主界面
3.2系統(tǒng)的功能界面
(1)添加文件功能上實現(xiàn)
功能描述:選擇電腦里的文件添加到播放列表,同時更新播放列表,流程圖如圖5所示:

圖5 添加文件功能流程
(2)流程描述:用戶運(yùn)行多媒體播放軟件,單擊添加文件按鈕,完成添加,演示如圖6所示:

圖6 添加文件演示圖
(2)歌曲控制功能實現(xiàn)
功能描述:此功能模塊實現(xiàn)對歌曲進(jìn)行打開/播放、暫停、停止、上一首、下一首、循環(huán)模式等控制。
流程圖如圖7所示:

圖7 歌曲控制流程
流程描述:從左到右,從上到下,相應(yīng)功能為:打開/播放、停止、添加文件、刪除文件、上一曲、下一曲、播放順序。
(3)音量控制功能實現(xiàn)
功能描述:可以對當(dāng)前正在播放的歌曲調(diào)節(jié)音量的大小,方便更清晰快捷地享受音樂帶來的感動,音量控制功能演示圖如下:
(4)播放進(jìn)度選擇功能實現(xiàn)
功能描述:控制播放進(jìn)度,隨時快進(jìn)或后退,保證用戶享受每一個畫面,不錯過任意一個精彩畫面,提高觀看或收聽質(zhì)量,播放進(jìn)度選擇功能演示圖8所示:

圖8 播放進(jìn)度選擇功能
完成視頻“熊出沒”的暫停、停止、音量控制等功能,并完成上一首、下一首、添加播放文件、刪除文件的功能。
這是一款簡單的多媒體播放器,功能多樣,且使用簡單,能夠進(jìn)行日常的媒體播放任務(wù),體積較小,占用內(nèi)存低。能夠高保真的播放大多數(shù)的音頻、視頻文件。程序通過調(diào)試運(yùn)行,實現(xiàn)了設(shè)計的目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以成為一款簡易的媒體播放軟件。由于時間關(guān)系,程序功能實現(xiàn)不夠完善,界面也不夠美觀等。這些都需要不斷的改進(jìn)和補(bǔ)充。具體存在的問題及不足主要有以下3點:
(1)播放器的界面還不夠美觀。由于時間有限,沒有給每個按鈕都做一張位圖圖片,如果時間足夠我想我會盡量完善它,使其兼具實用與美觀,給人更大的視覺享受。
(2)播放器的穩(wěn)定性不高。有時在播放非主流格式的媒體文件時,會發(fā)生報錯現(xiàn)象,這也是由于程序兼容性不高的緣故。
(3)播放視頻時的窗口大小問題。在播放畫面分辨率較高的視頻文件時,會造成畫面溢出對話框,影響觀看及程序美觀,這個問題在今后一定要解決。
[1] 于冬梅,陸斐,王蘇平.多媒體技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2011:7-20.
[2] 趙子江.多媒體技術(shù)應(yīng)用教程[M].北京:機(jī)械工業(yè)出版社,2013:317—323.
[3] 焦勝男.淺談多媒體技術(shù)的特點及發(fā)展前景[J].電子技術(shù)與軟件工程,2013,(17):102.
[4] 馬曉敏.多媒體播放器的設(shè)計與開發(fā)[J].電子世界,2013,(18):126.
[5] 溪利亞,程殊,王侶為.基于Phonon的多媒體播放器的設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2011,(29):7283-7285.
Design and Implementation of Multimedia Player Program
Ren Jingjuan
(School of Information Technology, Henan University of TCM, ZhengZhou 450046, China)
This paper mainly uses the development environment of VS2013, and adopts the software engineering principle to develop a simple multimedia player software through the object-oriented programming method. Its development mainly includes two aspects of the design of foreground window and the implementation of background source codes, realizing the play and control of the multimedia audio and video by using the computer.
VS2013; Multimedia Player; Play and Control of Audio and Video
TP393.1
A
1007-757X(2016)06-0043-03
2016.03.30)
河南省科技攻關(guān)科技開放合作項目(142106000192)
任靖娟(1969-),女,濮陽市人,河南中醫(yī)藥大學(xué),實驗師,碩士,研究方向:現(xiàn)代教育技術(shù)與多媒體技術(shù),鄭州,450046