id CActiveMovie3::SetCurrentPosition(double newValue) { static BYTE parms[] = VTS_R8; InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue); } (8)获得音量的函数:
long CActiveMovie3::GetVolume() { long result; InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); return result; } (9)设置音量的函数:
void CActiveMovie3::SetVolume(long nNewValue) { static BYTE parms[] = VTS_I4; InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue); } (10)设置自动开始播放的函数:
void CActiveMovie3::SetAutoStart(BOOL bNewValue) { static BYTE parms[] = VTS_BOOL; InvokeHelper(0x28, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue); } 在Visual C++6.0中,一般情况都是在基于对话框的应用程序中使用ActiveMovie控件,可在菜单中依次选择"project- > Add To Project- > Components And Controls",在出现的"Components And Controls Gallery"对话框中打开"Registered Active Controls"文件夹,选中"ActiveMovie Control Object"选项,按"Insert"按钮后关闭该对话框,ActiveMovie控件便出现在程序编辑器的控件面板中,调整好控件在对话框中的位置。利用ClassWizard为ActiveMovie控件声明一个变量,设该变量的名字为m_ActiveMovie,当用户选择过待播放的文件后,为了能够播放多个文件,可以使用如下代码来向列表控件添加待播放的文件名:
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter); if(dlg.DoModal()==IDOK) { CString m_filename=dlg.GetPathName(); m_list.AddString(m_filename); UpdateData(FALSE); } 为了实现多媒体文件的循环播放,我们利用定时器来工作,在定时器中添加代码如下:
CString m_filename; //定义文件变量 double CurPos=m_ActiveMovie.GetCurrentPosition(); //获得播放位置 if(CurPos= = 0) { //选择列表框的第一个文件 m_list.SetCurSel(0); m_list.GetText(0,m_filename); //设置自动播放 m_ActiveMovie.SetAutoStart(1); //设置文件 <
|