分类: C/C++
2008-03-11 17:58:58
一、 常见多媒体格式
二、ACTIVEMOVIE CONTROL OBJECT的常用属性void CActiveMovie3::Run()
{
InvokeHelper(0x60020001, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
2、暂停播放的函数: void CActiveMovie3::Pause()
{
InvokeHelper(0x60020002, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
4、停止播放的函数: void CActiveMovie3::Stop()
{
InvokeHelper(0x60020003, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
5、获得文件的函数: CString CActiveMovie3::GetFileName()
{
CString result;
InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}6、设置文件的函数: void CActiveMovie3::SetFileName(LPCTSTR lpszNewValue)
{
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
7、获得播放位置的函数: double CActiveMovie3::GetCurrentPosition()
{
double result;
InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
return result;
}
8、设置播放位置的函数: void CActiveMovie3::SetCurrentPosition(double newValue)
{
static BYTE parms[] = VTS_R8;
InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
}
9、获得音量的函数: long CActiveMovie3::GetVolume()
{
long result;
InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
10、设置音量的函数: void CActiveMovie3::SetVolume(long nNewValue)
{
static BYTE parms[] = VTS_I4;
InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue);
}
11、设置自动开始播放的函数: void CActiveMovie3::SetAutoStart(BOOL bNewValue)
{
static BYTE parms[] = VTS_BOOL;
InvokeHelper(0x28, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue);
}
三、 建立工程
四、添加代码void Cplayer::OnChoiceFile( )
{
// TODO: Add your command handler code here
CFileDialog fileDialog( TRUE,"*.OCX",NULL,NULL,"|所有文件(*.*)|*.*||");
if (fileDialog.DoModal() == IDOK)
{
//选择文件
Cstring m_FileName=fileDialog.GetPathName();
m_list.AddString(m_FileName); //加入到列表框。
}
}2、 为了循环播放,我们利用定时器来工作,采用OnPlay()函数来激活定时器,代码如下: void Cplayer::OnPlay()
{
// TODO: Add your command handler code here
//设置定时器
SetTimer(0,500,NULL);
}
void CMy1Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
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);
//设置文件
m_ActiveMovie.SetFileName(m_filename);
//播放
m_ActiveMovie.Run();
m_list.GetCurSel();
//插入列表框最后
m_list.InsertString(-1,m_filename);
//删除用过的文件
m_list.DeleteString(0);
}
CDialog::OnTimer(nIDEvent);
}
3、 关闭播放,我们可以利用函数OnClose()来实现,代码如下: void Cplayer::OnClose()
{
// TODO: Add your command handler code here
//设置定时器
KillTimer(0);
m_ActiveMovie.Stop();
}
四、结束语我们知道:
参考文献:
1、美 Paul Perry 陈向群 等译《多媒体开发指南》 清华大学出版社
2、 美 Peter Norton, Rob McGregor 孙凤英 等译《MFC开发Windows95/NT4应用程序》 清华大学出版社 1998
3、周敬利 《多媒体声卡技术及应用》 电子工业出版社 1998