博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2005下MFC调用Windows Media Player小结
阅读量:4107 次
发布时间:2019-05-25

本文共 2117 字,大约阅读时间需要 7 分钟。

方法一

1.         安装 WMP9

2.         VS2005 创建 mfc 工程,名称如 MP

在资源视图中,右键 “Insert activex control...” ,添加 Windows Media Player 控件。右击控件 “Add variable...” ,指定变量名 m_player 。这时,你会发现工程中添加了两个文件,分别为: ocx1.h ocx1.cpp 文件。这时发现 ocx1.h 文件中只有变量的设定,而并没有对应的方法 , 并且在 MPDlg.cpp 文件中会有如下 :

void CMP1Dlg::DoDataExchange(CDataExchange* pDX)

{

 CDialog::DoDataExchange(pDX);

 DDX_Control(pDX, IDC_OCX1, m_player);

}

继续按照网上的方法在 solution explorer 中右击 "MP"->"add"->"class..." ,选择 "MFC class From ActiveX Control". 选择 "registry" 单选框,并选择 "Windows Media Player<1.0>" Location c:/windows/system32/wmp.dll 之后将所有的接口文件加入到工程。

       m_player.put_URL( _T("E://baofeng.wmv") );

方法二

1.         首先将 WMP9 去除,并注册 ocx

方法为:在 " 开始 "-" 运行 " 中: regsvr32 c:/windows/system32/wmp.dll /u ,卸载掉 9.0 版本 WindowsMediaPlayer, 然后,在在 PC 机的 [ 开始 ]-[ 运行 ] 里执行以下命令: regsvr32 c:/windows/system32/msdxm.ocx

2.         VS2005 创建 mfc 工程,名称如 MP1

在资源视图中,右键 “Insert activex control...” ,添加 Windows Media Player 控件。右击控件 “add variable...” ,指定变量名 m_player 。这时,你会发现工程中添加了两个文件,分别为: mediaplayer1.h mediaplayer1.cpp 文件。这时发现 mediaplayer1.h 文件中只有变量的设定,并有对应的方法。并且在 MP1Dlg.cpp 文件中会有如下 :

void CMP1Dlg::DoDataExchange(CDataExchange* pDX)

{

       CDialog::DoDataExchange(pDX);

 DDX_Control(pDX, IDC_MEDIAPLAYER1, m_player);

}

solution explorer 中右击 "MP"->"add"->"class..." ,选择 "MFC class From ActiveX Control" 。选择 "registry" 单选框,并选择 "Windows Media Player<1.0>" Location c:/windows/system32/msdxm.ocx, 之后将 IMediaPlayer2 接口加入到工程。此时工程将出现 CMediaPlayer2.h .cpp 文件。如图:

3.         然后在 MP1Dlg.h 中将 m_player 的类替换成 CMediaPlayer2

添加按钮,写入代码:

  char szFileFilter[]=

  "Mp3 File(*.mp3)|*.mp3|"

  "MPEG File(*.mpeg)|*.mpeg|"

  "Media File(*.asf)|*.asf|"

  "Video File(*.dat)|*.dat|"

  "MPGA File(*.mpga)|*.mpga|"

  "Wave File(*.wav)|*.wav|"

  "AVI File(*.avi)|*.avi|"

  "Movie File(*.mov)|*.mov|"

  "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"

  "Wma File(*.wma)|*.wma|"

  "All File(*.*)|*.*||";

 

 CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);

 if (fileDialog.DoModal() == IDOK)

 {

  CString  fileName=fileDialog.GetPathName();

  fileName.MakeUpper();

  m_player.put_FileName(fileName);

 }

 

至此,运行的程序就能选择文件并播放,也可以添加其他的功能,这里不多说。有个遗憾是,因为 avi 格式的压缩可能有多种格式,可能会出现不能播放或者只有声音未见图像的情况。

转载地址:http://zttsi.baihongyu.com/

你可能感兴趣的文章
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>
C# 简单的矩阵运算
查看>>