对于VS2003控件的看法与说明的具体概述
创始人
2024-06-12 21:10:43
0

最近在做一个有关VS2003控件和windows media player 控件的东西,刚开始做的时候,在网上找了很久都没找到相关的中文文档。没办法,只好自己硬着头皮慢慢查看MSDN上的有关内容。由于VS2003控件与VC6有一定的区别,这也是我在查找资料和使用控件时遇到的具到困难。#t#

Windows media player作为MS的官方组件,MSDN上有着比较详细的英文说明,但是该说明却并不是那么让人一目了然。该文就如何操作该组件的几个主要接口以及一些基本功能的实现给与详尽而明白的说明,为使该文尽量简单易懂,本文给出了用windows media player控件编写一个简单播放器的基本步骤。

首先,创建一个对话框,然后在资源管理器中右击对话框,选择“插入Active控件”—〉选择windows media player—〉将控件拉到适合大小—〉右击player控件—〉选择添加变量(m_avPlayer)。此时添加的变量在VS2003中不在时IWMPPlay4 了,而是COcx。

右击类视图/解决方案—〉添加类—〉选择“Active中的MFC类”—〉选择windows media player<1.0>à选择相应的接口(IWMPMedia IWMPSettings IWMPControls IWMPPlaylist等等)生成类。为图方便,我将所有接口都生成了相应的类。

为了说明方便,我在对话框中放了几个按钮,分别是:打开,播放,暂停,停止,添加。并在对话框右边添加了一个clistctrl又来显示播放列表。

然后在对话框头文件中添加了以下变量:

  1. CWMPControls m_control;  
  2. CWMPSettings m_set;   
  3. CWMPPlaylist    m_playlist;  
  4. CWMPMedia m_media;  
  5. COcx1 m_avPlayer;  
  6. CListCtrl m_listCtrl;  
一切准备工作就绪,下面就涉及到具体的编程问题了。

media player 的主要功能有:播放控制,屏幕显示,播放列表,播放列表集,播放信息显示。

 

其中播放控制又有:打开,开始,暂停,停止,快速播放,倒退等等。

打开:当选择一个文件打开是,为打开按钮添加消息响应函数,在VS2003控件函数中添加如下代码

 

  1. char szFileFilter[]=  
  2. "Mp3 File(*.mp3)|*.mp3|"   
  3. "MPEG File(*.mpeg)|*.mpeg|"   
  4. "Media File(*.asf)|*.asf|"   
  5. "Video File(*.dat)|*.dat|"   
  6. "MPGA File(*.mpga)|*.mpga|"   
  7. "Wave File(*.wav)|*.wav|"   
  8. "AVI File(*.avi)|*.avi|"   
  9. "Movie File(*.mov)|*.mov|"   
  10. "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"   
  11. "Wma File(*.wma)|*.wma|"   
  12. "All File(*.*)|*.*||";   
  13. CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);  
  14. if (fileDialog.DoModal() == IDOK)   
  15. {  
  16. CStringfileName=fileDialog.GetPathName();   
  17. m_avPlayer.put_URL(fileName);  

 

◆下面来实现播放列表。为实现播放列表控制,首先在OnInitDialog()中添加代码:

//创建一个播放列表

 

  1. char szFileFilter[]=   
  2. "Mp3 File(*.mp3)|*.mp3|"   
  3. "MPEG File(*.mpeg)|*.mpeg|"   
  4. "Media File(*.asf)|*.asf|"   
  5. "Video File(*.dat)|*.dat|"   
  6. "MPGA File(*.mpga)|*.mpga|"   
  7. "Wave File(*.wav)|*.wav|"   
  8. "AVI File(*.avi)|*.avi|"   
  9. "Movie File(*.mov)|*.mov|"   
  10. "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"   
  11. "Wma File(*.wma)|*.wma|"   
  12. "All File(*.*)|*.*||";   
  13. CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);  
  14. if (fileDialog.DoModal() == IDOK)   
  15. {  
  16. CStringfileName=fileDialog.GetPathName();   
  17. //创建一个媒体  
  18. m_media = static_cast(m_avPlayer.newMedia(fileName));  
  19. //将媒体添加到播放列表  
  20. m_playlist.appendItem(m_media);  
  21. //将列表添加到当前列表,以便实现自动播放  
  22. m_avPlayer.put_currentPlaylist(m_playlist);  
  23. m_set = (CWMPSettings)m_avPlayer.get_settings();  
  24. //参数true设置自动播放,false不设置自动播放  
  25. m_set.put_autoStart(true);  
  26. //将媒体的名字添加到列表控件  
  27. m_listCtrl.InsertItem(0, m_media.get_name());  
  28. }  

 

播放信息的显示

可以通过CWMPMedia类获取相关的媒体信息。

 

◆获取播放文件名:

其他,如鼠标,接盘事件响应,可添加相应的消息响应函数

要注意的是,在添加如鼠标一类的消息时,消息函数有个参数如nButton,它的值为1时是单击鼠标左键,2为单击鼠标右键消息,4为单击鼠标中键。等等。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...