VS2005下MFC调用Windows Media Player小结

方法一

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 格式的压缩可能有多种格式,可能会出现不能播放或者只有声音未见图像的情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值