返回信息流好吧,小学期要做多媒体播放器,我的过程大致如下:
新建一个基于对话框的mfc应用程序,在右击工具栏-》选择项-》com组件-》Windows Media Player,这样添加了播放器控件,加了一堆按钮,然后右键项目-》添加类-》ActiveX中的MFC类,这之后有两个选项:1,注册表,2,文件。我在注册表里没找到Media Player,在文件选项里找到了c:\windows\system32\msdxm.tlb,然后成功的添加了Windows Media Player类,然后添加“打开”按钮事件响应:
char szFileFilter[]=
"All File(*.*)|*.*||"
"Mp3 File(*.mp3)|*.mp3|"
"Wma File(*.wma)|*.wma|"
"Video File(*.dat)|*.dat|"
"Wave File(*.wav)|*.wav|"
"AVI File(*.avi)|*.avi|"
"Movie File(*.mov)|*.mov|"
"Media File(*.mmm)|*.mmm|"
"Mid File(*.mid;*,rmi)|*.mid;*.rmi|"
"MPEG File(*.mpeg)|*.mpeg|";
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(dlg.DoModal()==IDOK)
{
CString PathName=dlg.GetPathName();
PathName.MakeUpper();
m_MediaPlayer.Open(PathName);
}
编译执行,单击打开,选择了一个wna文件确定后出现错误:
debug assertion failed
程序停止在 ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
上网上查了好多资料没搞明白,把项目的属性debug改为release后,选择一个wma文件后程序没有反应
不知道要在程序中调用Media Player需要做些什么,还有:
1,我已经在命令行里面输入RegSvr32 C:\windows\system32\msdxm.ocx,并且提示已经成功,为什么在添加类时的注册表选项里找不到Windows Media Player呢?
2,我在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下执行aximp c:\windows\system32\msdxm.ocx时提示错误:加载类型库/dll时出错,(异常来自异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY )
这些天一直都在搞播放器,也一直都没搞明白,希望大牛帮忙解答疑惑,不甚感激!谢谢!
这是一条镜像帖。来源:北邮人论坛 / cpp / #25719同步于 2009/7/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]virtual studio中用Windows Media Player控件
doujiang
2009/7/1镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
1.建议使用VC6,VS2003之后好像做了些改动,控件会有问题,总之我是不会,好像C#可以,但用MFC最好用VC6.
2.先从最简单的开始,直接拖放控件到一个MFC的对话框中,会产生一个新类,然后就可以用了。
谢谢指点,我换VC试试
【 在 kissme 的大作中提到: 】
: 1.建议使用VC6,VS2003之后好像做了些改动,控件会有问题,总之我是不会,好像C#可以,但用MFC最好用VC6.
: 2.先从最简单的开始,直接拖放控件到一个MFC的对话框中,会产生一个新类,然后就可以用了。