对于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);  
  18. } 

 

◆下面来实现播放列表。为实现播放列表控制,首先在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为单击鼠标中键。等等。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...