AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

在VC++中实现自动连续播放多媒体文件

51自学网 2015-08-30 http://www.wanshiok.com

  (5)设置文件的函数:

void CActiveMovie3::SetFileName(LPCTSTR lpszNewValue)
{
 static BYTE parms[] = VTS_BSTR;
 InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,lpszNewValue);
}

  (6)获得播放位置的函数:

double CActiveMovie3::GetCurrentPosition()
{
 double result;
 InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
 return result;
}

  (7)设置播放位置的函数:

void 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);
 //设置文件
 m_ActiveMovie.SetFileName(m_filename);
 //播放
 m_ActiveMovie.Run();
 m_list.GetCurSel();
 //插入列表框最后
 m_list.InsertString(-1,m_filename);
 //删除用过的文件
 m_list.DeleteString(0);
}
CDialog::OnTimer(nIDEvent);
}


  当需要关闭音/视频的播放时,可以用函数m_ActiveMovie.Stop()来实现。

  二、编程步骤

  1、 启动Visual C++6.0,生成一个基于对话框的程序,将该程序命名为"Player",去掉程序中对话框上的"确定" 和"取消"按钮,并加入ActiveMovie控件;

  2、 使用资源编辑器对话框添加三个按钮("选择曲目Open"、"循环播放Play"、"关闭Stop")和一个列表框;

  3、 使用ClassWizard为三个按钮和列表框添加成员变量,分别为:CButton m_stop、 CButton m_play、CListBox m_list;并且为三个按钮添加鼠标单击消息响应函数;

  4、 添加代码,编译运行程序。

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。

上一篇:用VC6.0实现快捷方式中的查找目标功能  下一篇:Windows 的多线程程序设计初步