vs2013MFC初学者,编写视频播放器时遇到了点问题,求解

mizuki_ 2017-07-16 09:16:16
void CMediaPlayerDlg::OnTimer(UINT_PTR nIDEvent)
{
play *p = new play();
int index = p->m_Player2.get_playState; //播放状态
if (index == 1)
{
if (((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck()) //如果顺序播放
{
CString str;
int index = m_list.GetCurSel() + 1;
if (index >= m_list.GetCount()) index = 0; //播放完最后一个,自动播放第一个
m_list.GetText(index, str);
p->m_Player2.put_URL(str);
m_list.SetCurSel(index); //自动设置光标
}
if(((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck()) //随机播放
{
srand(time(0));
m_list.SetCurSel(rand() % m_list.GetCount());
m_list.GetText(m_list.GetCurSel(),PathName);
p->m_Player2.put_URL(PathName);
}
if (((CButton *)GetDlgItem(IDC_RADIO3))->GetCheck())

CString str;
m_list.GetText(m_list.GetCurSel(), str);
p->m_Player2.put_URL(PathName);

CDialogEx::OnTimer(nIDEvent);
delete p;
}

因为点击播放按钮要弹出一个新的窗口播放视频,所以新创了一个对话框,并且媒体播放器控件的类的对象是在那里面定义的。
这是一个实现顺序播放随机播放的函数,但编译时总是出现断言,求大神帮忙

下面是新对话框类
class play : public CDialogEx
{
DECLARE_DYNAMIC(play)

public:
play(CWnd* pParent = NULL); // 标准构造函数
virtual ~play();

// 对话框数据
enum { IDD = IDD_PLAY };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
CWMPPlayer4 m_Player2;
};
...全文
183 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
三岁、就很帅 2017-07-17
  • 打赏
  • 举报
回复
你为什么要在点击按钮的时候创建视频 为什么不在初始化里面就创建好 然后点击的时候直接播放输出到控件上呢 你的界面逻辑先屡屡
三岁、就很帅 2017-07-17
  • 打赏
  • 举报
回复
CDialogEx::OnTimer(nIDEvent); delete p; 你这个地方每次进入定时器函数都会创建一个p delete个p 为什么不在程序开始的时候new好 然后在退出函数里面释放

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧