现在的位置: 首页 > 综合 > 正文

VC调用windows media player控件实现视频播放

2013年10月01日 ⁄ 综合 ⁄ 共 3174字 ⁄ 字号 评论关闭

一 新建MFC项目工程 
打开Microsoft Visual C++ 6.0(以下简称VC6.0),选择菜单File->New命令,弹出New窗口,在New窗口中单击Projects标签,弹出选项卡,如图1所示,在下面选择工程类型MFC AppWizard(exe),然后在右边的编辑框Project name:中输入要新建MFC工程名称OpenVideo。再点击下面的OK键,在弹出的对话框中选择Dialog based选项,点击下面的Finish,在弹出的窗口中单击OK。这样我们就新建了一个MFC项目工程,其界面如图2所示。 
图1 New对话框 
图2 MFC工程界面 
二 添加Windows Media Player控件 
上面我们已经新建了一个MFC工程,这里先对Windows Media Player控件做一简单介绍,在介绍在VC6.0中如何添加Windows Media Player控件。 
Windows Media Player控件的添加 
选择菜单Project->Add to Project中的Components and Controls命令,弹出如图3所示的Components and Controls Gallery对话框。然后双击Choose a component to insert into your project:中的Registered ActiveX Controls,在该文件夹中选择Windows Media Player,如图4所示,单击Insert,在Insert this component?中选择“确定”,将弹出Confirm
Classes窗口,在列表框中有CWMPPlayer4等各种类,单击OK将返回到Components and Controls Gallery界面。最后单击“Close”返回VC++开发界面。自此,Windows Media Player的类都已加载到MFC的OpenVideo工程中。图5显示了OpenVideo工程中Source Files中的不同类,可以看出Windows Media Player控件中的类已添加到OpenVideo工程中。接下来的就是界面的设计。 
图3 Components and Controls Gallery对话框 
图4 Windows Media Player选择窗口 
图5 OpenVideo工程的Source Files 
三 界面设计 
通过上面的工作,我们已经把Windows Media Player控件添加到OpenVideo工程中了,这里主要讲述改成小界面的设计。 
图6 Dialog选项 
在VC++6.0项目工作区中的ResourceView资源视图,展开资源视图文件夹下的对话框选项Dialog,双击Dialog文件下的IDD_OPENVIDEO_DIALOG,如图6所示,将在VC++6.0编辑区中弹出OpenVideo对话框编辑窗口。首先删除对话框中的几个原始命令按钮,然后在右边的Controls工具栏中分别选择3个Button按钮和1个Windows Media Player按钮置于OpenVideo对话框中。如图7所示,单击右键并选择Properties,打开的Dialog Properties窗口中,将General->Caption设置为“视频播放器”;在按钮命令上单击右键并打开Properties选项,在弹出的窗口中设置3个按钮的General->Caption分别为“打开”、“播放”、“关闭”;打开类向导窗口MFC
ClassWizard,在Member Variables下给Windows Media Player按钮设置关联变量m_Ctrplay,类型为CWMPPlayer4,如图8所示,单击“OK”即可。 
图7 视频播放器界面示意图 
图8 MFC ClassWizard窗口 
下面为“打开”、“播放”、“关闭” 分别添加消息响应函数OnButtonOpen()、OnButtonPlay()和OnButtonClose(),这3个函数的代码分别如下: 
1、OnButtonOpen()打开视频文件 
void COpenVideoDlg::OnButtonOpen() 
{ 
// TODO: Add your control notification handler code here 
CfileDialog dlg(TRUE,_T("avi"),_T("*.avi"), 
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, 
_T("(*.rmvb)|*.rmvb|(*.mpg)|*.mpg|(*.avi)|*.avi|(* .*)|*.*|")); 
if (dlg.DoModal()) 
{ 
m_strFilePathName=dlg.GetPathName(); 
} 
} 
2、OnButtonPlay()播放视频文件 
void COpenVideoDlg::OnButtonPlay() 
{ 
// TODO: Add your control notification handler code here 
if (m_strFilePathName!="") 
{ 
m_Ctrplay.SetUrl(m_strFilePathName); 
} 
} 
3、OnButtonClose()关闭视频文件 
void COpenVideoDlg::OnButtonClose() 
{ 
// TODO: Add your control notification handler code here 
m_Ctrplay.close(); 
} 
其中,变量m_strFilePathName在头文件nbsp;OpenVideoDlg.h >中的class COpenVideoDlg : public Cdialog中定义为Cstring型变量。 
图9 视频播放器窗口 
四 结论 
通过以上的讨论,我们已经设计好了视频播放器,然后运行程序,通过“打开”按钮打开一个视频文件,再按“播放”按钮,则其播放效果如图9所示,若按“关闭”按钮,则将视频文件关闭之。可以看出,基于VC++的Windows Media Player的视频播放器能够有效地各种播放视频文件。 
 
 
 所支持的类型可参考微软网站:http://support.microsoft.com/kb/316992/zh-cn

支持的文件格式

Windows
Media 格式(.asf、.wma、.wmv、 .wm)

Windows
Media 元文件(.asx、.wax、.wvx、.wpl)

Microsoft
数字视频记录 (.dvr-ms)

Windows
Media 下载程序包 (.wmd)

影音交叉存取
(.avi)

运动图像专家组(.mpg、.mpeg、.m1v、.mp2、
.mp3、.mpa、.mpe、.mpv2、.m3u)

乐器数字接口(.mid、.midi、
.rmi)

音频交换文件格式(.aif、.aifc、.aiff)

Sun
Microsystems 和 NeXT(.au、.snd)

Audio
for Windows (.wav)

CD
音频曲目 (.cda)

Indeo
视频技术 (.ivf)

Windows
Media Player 皮肤(.wmz、.wms)

QuickTime
内容(.mov、.qt)

不受支持的文件格式

RealNetworks
内容(.ra、.rm、.ram)

QuickTime
内容(.mov、.qt)

MPEG-4
(.mp4)

免费无损音频编解码器
(.flac)

FLAC 是一种类似于 MP3 的音频格式,它代表“Free Lossless Audio Codec(免费无损音频编解码器)”,允许对数字音频进行无损压缩,同时在不丢失任何信息的情况下减小文件大小。通过 FLAC 的算法压缩的数字音频通常可减少至原始大小的 50–60%,并可解压缩为完全相同的原始音频数据副本

抱歉!评论已关闭.