设为首页 加入收藏

TOP

用VC6.0设计数字视频播放器(二)
2012-11-04 15:08:12 来源: 作者: 【 】 浏览:451
Tags:VC6.0 设计 数字 视频 播放器
  2 函数的实现

MyDigtal::MyDigtal()
{
 m_Open = m_Pause = m_Playing = FALSE;
 m_DeviceID = 0;
 // 初始化成员变量
}
MyDigtal::~MyDigtal()
{
 Close ();
}

  由于篇幅所限,下面只是列出了一些主要程序。

mciSendCommand (m_DeviceID, MCI_STOP, NULL, NULL);
mciSendCommand (m_DeviceID, MCI_CLOSE, NULL, NULL); // 停止播放并关闭设备
MCI_DGV_OPEN_PARMS MCIOpen; // 打开设备
MCIOpen.lpstrDeviceType = "avivideo";//设置播放设备为视频播放设备
MCIOpen.lpstrElementName = (LPSTR) Filename.GetBuffer (0);//文件名
MCIOpen.hWndParent = pWnd->m_hWnd;//可播放视频文件窗口指针
MCIOpen.dwStyle = WS_CHILD | WS_VISIBLE;
MCI_DGV_SET_PARMS MCISet; // 将文件长度设置为帧
MCISet.dwTimeFormat = MCI_FORMAT_FRAMES;
mciSendCommand (m_DeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL); // 找到视频文件//的开始位置
MCI_DGV_PLAY_PARMS MCIPlay;//在当前位置开始播放
MCIPlay.dwFrom = GetFrame ();//得到当前的视频位置
MCI_DGV_PAUSE_PARMS MCIPause;//暂停播放
mciSendCommand (m_DeviceID, MCI_PAUSE, 0, (DWORD)(LPVOID) &MCIPause))
MCI_DGV_STATUS_PARMS MCIStatus;//获的视频的总帧数
MCIStatus.dwItem = MCI_STATUS_LENGTH;
return (int) MCIStatus.dwReturn;//总帧数
MCI_DGV_STATUS_PARMS MCIStatus;//得到视频当前的播放位置
MCIStatus.dwItem = MCI_STATUS_POSITION;
return (int) MCIStatus.dwReturn;

MCI_DGV_STATUS_PARMS MCIStatus;//查询视频是否处于播放状态
MCIStatus.dwItem = MCI_STATUS_MODE;
MCI_SEEK_PARMS MCISeek;//跳转播放
MCISeek.dwTo = nFrame;
MCI_DGV_STEP_PARMS MCIStep;//前进和后退
MCIStep.dwFrames = nFrames;

  3 界面及应用功能程序的设计

  我们创建一个基于对话框的应用程序。最后生成的程序界面如图1所示。


图1 播放器主界面

  在应用程序中,首先要在工程中添加winmm.lib库文件。winmm.lib库中输出了MCI的各类函数。其次要把MyDigtal类加入对话框主程序中,这样在后面用到九个按钮程序中就可以直接调用类中的功能函数。这里,我们特别要注意在函数中必须添加OnTime()函数。对于一个视频,如果开始了播放,它会按照既定的速度进行显示。但在打开一个视频后还需要对其进行进一步的操作,视频在播放时不会发送消息的,只有通过OnTime()函数每隔一定的时间检查一次视频播放状态,然后才可以针对视频的状态,对滑块显示当前帧的窗口进行更新,并确定此时每个按钮的状态。我们一般可以选用100毫秒更新一次。

  4 结束语

  我们使用VC++(www.cppentry.com)6.0这个微软强大的可视化应用程序开发工具,在VC++(www.cppentry.com)环境下,利用MFC库和MCI标准,我们可以轻松开发用于播放AVI格式的视频文件。

  参考文献
 
  [1] Davis Chapman著 骆长乐译 学用Visual C++(www.cppentry.com) 6.0 清华大学出版社 1999.9

  [2] David J.Kruglinski 等 Programming Visual C++(www.cppentry.com)(Fifth Edition) Micrsoft Press 2001.6

  [3] 周长发 著 多媒体计算机技术开发与应用 电子工业出版社 1995.7

  [4] 本书编写组 著 Visual C++(www.cppentry.com) 6.0 MFC类库参考手册 人民邮电出版社 2002.11



首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇STL实践指南之另一种容器:集合 下一篇MFC基础入门之Hello World

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: