一、简介
工具:VS2019社区版
控件:按钮、Windows Media Player
项目:利用ActiveX控件Windows Media Player 实现视频播放
二、步骤
(一)创建一个 “基于对话框“ 的 “MFC应用程序”
具体过程,此处不一 一赘述
(二)把界面上用不到的控件去掉
去掉”Text Control"、"确认"按钮、“取消”按钮
(三)添加“Windows Media Player”控件
窗体空白处右击 ——> "插入 ActiveX控件" ——> 点击 "Windows Media Player" ,点击"确认"
(四)添加 “IWMPPlayer4” 接口
项目上右击——> "添加" ——> "新建项" ——> "MFC" ——> "ActiveX 控件中的 MFC 类"
——>点击右下角 "添加“
然后在接下来的界面中,
“实现接口的位置” 选择 “文件” ——> 浏览文件位置,找到 ”wmp.dll“ 文件,一般在 “C:\Windows\System32\" 文件夹底下 ——> "可用接口” 中找到 "IWMPPlayer4" ——> 点击 “ >” 按钮来添加这个接口 ——> 点击 ”确定“
(五)为控件关联 “CWMPPlayer4” 类型变量
(1)法一:自动关联
鼠标放在“Windows Media Player”控件上,右击 ——> "添加变量“ ——> 变量类型填 “CWMPPlayer4” ——> 名称自己随便填一个,比如我这里的 "m_Player"
然后,会有一个这样的弹窗出现,先不用管,点击”确定“
出现上面那个弹窗说明变量没有关联上,没关系我们可以手动关联一下
(2)法二:手动关联
(自动关联上的友友们可以不用管这里,直接跳过到下一步)
打开”XXXXDlg.h“ 文件,首先添加头文件
//”XXXXDlg.h“
#include "CWMPPlayer4.h"
然后,定义“CWMPPlayer4” 类型变量
//”XXXXDlg.h“
CWMPPlayer4 m_Player;
接下来,打开”XXXXDlg.cpp“,把控件与变量关联起来,找到“XXXXDlg”类的DoDataExchange函数,添加 “DDX_Control(pDX, IDC_OCX1, m_Player); ” 代码。
注意不要找错函数了,“CAboutDlg”类也有个DoDataExchange函数,我们要找的是我们创建的项目的DoDataExchange函数。
//”XXXXDlg.cpp“
void XXXXDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_OCX1, m_Player);
}
(PS:可能有人的“IDC_OCX1”底下会有个红色的“~~~~~”警告,比如我上面那张图,不用管,MFC这块有点小Bug,对我们程序运行是没有影响的,不信的话可以试运行一下,是没有问题的)
(六)添加按钮控制播放
(1)“播放”
双击按钮,编写按钮动作
void CVideoPlayDemo2Dlg::OnBnClickedButton1()
{
CString FilePath = _T("D:\\00File\\...\\1049981749565587456.mp4"); //视频文件的路径
m_Player.put_URL(FilePath); //播放
}
三、效果