用MFC实现媒体播放器的A-B两点循环播放功能

来源:互联网 发布:今天网络怎么这么差 编辑:程序博客网 时间:2024/05/20 22:26

最近在用MFC开发一项媒体播放器,使用Microsof Media Player 1.0 版本的空间。

我想在我的播放器中添加一项A-B两点播放功能,搞了两天,终于有头目了。现在将我的做法分享给大家,希望高手多多指正。

两点播放功能:
1.在...Dlg.h头文件里用CWMPControls类创建一个public对象
在public中创建bool型的flagS和flagE起点/终点按键控制标记
创建double型的startP和endP起点/终点记录变量;
2.在...Dlg.cpp中的OnInitDialog()初始化函数中初始化:

startP=-1.00;endP = -1.00;flagE = 0;flagS = 0;

并且m_bpPlay = m_player.GetControls();//获得权限
3.在OnTimer()中加入设置两点播放的代码:

////////////////////////////////两点播放//////////////////////////////////////////

if (flagS==1){flagS=0;MessageBox("起点设置成功");startP = m_bpPlay.GetCurrentPosition();}if (flagE == 1){flagE = 0;MessageBox("终点设置成功");endP = m_bpPlay.GetCurrentPosition();m_bpPlay.SetCurrentPosition(startP);}if (static_cast<int>(m_bpPlay.GetCurrentPosition()) == static_cast<int>(endP)){//MessageBox("我在循环播放");m_bpPlay.SetCurrentPosition(startP);}

//////////////////////////////////////////////////////////////////////////


4.添加两点播放的按钮
起点按钮:flagS=1;
终点按钮:flagE=1;

5.添加del按钮,清除两点记录,从当前位置继续播放startP=-1.00;endP = -1.00;flagE = 0;flagS = 0;


原创粉丝点击