可視動畫控件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 here char 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()函數的作用是顯示“打開”對話框,通過該對話框選擇要執行的文件。