您的位置:首页 > 其它

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

2013-08-29 10:39 681 查看
一 新建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%,并可解压缩为完全相同的原始音频数据副本

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: