在VC++中实现自动连续播放多媒体
2008-02-26 20:27:20 来源:WEB开发网三、 建立工程
利用 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。然后为 "选择曲目"按钮声明一个变量m_ChoiceFile,为"循环播放"按钮声明一个变量m_Play,为"关闭"按钮声明一个变量m_Close,为一个列表框声明一个变量m_list。
1、 为了将所需播放的文件加入列表框,我们采用OnChoiceFile()函数来显示"打开"对话框,通过该对话框选择要执行的文件。以便为以后调用作准备。代码如下:
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
更多精彩
赞助商链接