需要一個用vc制作的能播放rm格式的播放器的小程序,最好具體講解一下制作過程,謝謝大家了

熱心網友

VC 6。0下自制媒體播放器 ---- 可視動畫控件ActiveMovie是Microsoft公司開發的ActiveX控件,從開始的1。0版、1。2版到現在的2。0版,功能上已經有了很大的改進。由于該控件內嵌了Microsoft MPEG音頻解碼器和Microsoft MPEG視頻解碼器,所以能夠很好地支持音頻文件和視頻文件,用其播放的VCD效果就很好。另外,播放時若用鼠標右鍵單擊畫面,可以直接對畫面的播放、暫停、停止等進行控制,讀者還可以自行在“屬性”欄中對影片播放進行控制設置,用起來非常方便。 在Microsoft公司去年推出的VC++6。0中已經包含了ActiveMovie控件的2。0版,筆 者 在VC++6。0下利用這個控件自制了一個簡易的媒體播放器,除了滿屏功能外,還可以對音量進行控制。下面把具體做法介紹給讀者。 ---- 一 建立工程 ---- 利用 VC++6。0的AppWizard生成一個基于對話框的工程Player,去掉對話框上的“確定” 和“取消”按鈕,并加入ActiveMovie控件(通常情況下ActiveMovie控件并不出現在控件面板中,可在菜單中依次選擇“project— Add To Project— Components And Controls”,在出現的“Components And Controls Gallery”對話框中打開“Registered Active Controls”文件夾,選中“ActiveMovie Control Object”選項,按“Insert”后關閉該對話框,ActiveMovie控件便出現在控件面板中),調整好控件在對話框中的位置。為了能夠控制控件的操作,應為對話框設計一個菜單,菜單的項目可以定為“文件”、“屏幕控制“和“音量控制”。 ---- 二 添加代碼 ---- 首先利用ClassWizard為ActiveMovie控件聲明一個變量m_ActiveMovie。然后為菜單 “文件”添加兩個菜單項“打開文件”和“退出”,并分別添加函數OnOpen()和OnExit(),代碼如下: void Cplayer::OnOpen(){// TODO: Add your command handler code herechar szFilter[] = " Video File (*。dat)∣*。dat∣Wave File (*。wav)∣*。wav∣AVI File (*。avi)∣(*。avi)∣Movie File (*。mov)∣(*。mov)∣Media File (*。mmm)∣(*。mmm)∣Mid File(*。mid;*。rmi)∣(*。mid;*。rmi)∣MPEG File (*。mpeg)∣(*。mpeg)∣All File (*。*)∣*。* ";//用于設置FileDialog的文件類型CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );if( FileDlg。DoModal() == IDOK ){CString PathName = FileDlg。GetPathName();PathName。MakeUpper(); m_ActiveMovie。SetFileName(PathName); }}---- OnOpen()函數的作用是顯示“打開”對話框,通過該對話框選擇要執行的文件。 void CPlayer::OnExit(){// TODO: Add your command handler code hereOnOK();//退出應用程序}---- 為菜單“屏幕控制”添加菜單項“滿屏”,其響應函數為OnFully(),具體代碼如下: void CPlayer::OnFully() {// TODO: Add your command handler code here m_ActiveMovie。Pause ();//暫停播放 m_ActiveMovie。SetFullScreenMode(true);//設置滿屏模式 m_ActiveMovie。 Run();//繼續播放 m_ActiveMovie。SetMovieWindowSize(SW_SHOWMAXIMIZED); //設置窗口為最大} ---- ActiveMovie控件還提供了控制音量的兩個函數GetVolume()和SetVolume(),只要在程序中調用這兩個函數,便可以達到控制音量的目的。為“音量控制”添加“增加”和“減小”兩個菜單項,其響應函數分別為: void CVcdDlg::OnAdd() {// TODO: Add your command handler code herelong m_valume=m_ActiveMovie。GetVolume (); //獲取當前音量 m_ActiveMovie。Pause ();m_ActiveMovie。SetVolume(m_valume+100); //用于增加音量m_ActiveMovie。Run ();}void CVcdDlg::OnReducing() {// TODO: Add your command handler code herelong m_valume=m_ActiveMovie。GetVolume ();m_ActiveMovie。Pause ();m_ActiveMovie。SetVolume(m_valume-100); //用于減小音量m_ActiveMovie。Run ();} ---- 在聲卡的控制菜單上給出了“靜音”操作,那么能否為我們自己制作的媒體播放器加上 “靜音”功能呢?回答是肯定的。雖然ActiveMovie控件并沒有直接提供“靜音”函數,但可以通過控制函數SetVolume()的參數來實現“靜音”的效果。筆者經過反復試驗,當 SetVolume()的參數設為-4000使效果比較理想。要實現靜音功能,應先為“音量控制”加入菜單項“靜音”,并添加消息響應函數OnMute(),代碼如下: void CVcdDlg::OnMute() {// TODO: Add your command handler code herem_ActiveMovie。Pause ();m_ActiveMovie。SetVolume(-4000);m_ActiveMovie。Run ();}---- 編譯運行本程序,便可以用自制的媒體播放器欣賞光盤上的音頻或視頻節目了。